Skocz do zawartości
  • 0

Zmienne


Yoiviss

Pytanie

ogólnie szybkie pytanie, jak ustawić zmienne w stylu że np.

command /komenda zmienna1 zmienna2:

    execute player command "wyrzuc zmienna1"

    execute playe rcommand "costam zmienna2"

i jak wykorzystać je w ciągu dalszym skryptu 

prosiłbym o szybką odpowiedź :c

Edytowane przez xNightPower_
Nieaktywny

Umieszczam kod w code.

Odnośnik do komentarza
https://skript.pl/temat/44824-zmienne/
Udostępnij na innych stronach

13 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
1 minutę temu, Yoiviss napisał:

ogólnie szybkie pytanie, jak ustawić zmienne w stylu że np.

command /komenda zmienna1 zmienna2

i jak wykorzystać je w ciągu dalszym skryptu 

prosiłbym o szybką odpowiedź :c

To nie są zmienne, a argumenty komendy.

Poradnik dotyczący tworzenia własnych komend w Skript znajdziesz na forum, napisał go Pan Maruda. Wystarczy wyszukać "Komendy w Skript".

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/44824-zmienne/#findComment-281556
Udostępnij na innych stronach

  • 0
16 minut temu, Yoiviss napisał:

nie mógłby ktoś mi po prostu to napisać? bo tam jest tego trochę dużo i trudno mi znaleźć

Mam jeszcze jeden pomocny link.

https://dev.bukkit.org/projects/skript/pages/custom-commands

EDIT:

Drugi link: https://wiki.skript.pl/Komendy

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/44824-zmienne/#findComment-281587
Udostępnij na innych stronach

  • 0
1 minutę temu, Yoiviss napisał:

no bo chce po prostu zrobić tak, że ktoś wpiszę np. /skopiuj [nick] [jeszczecos] i zebym w dalszym kodzie mógł wykorzystać te dwa argumenty ale nie potrafię

No dobrze, więc od początku.

Definicję komendy rozpoczynamy od napisania 'command' wraz z nazwą komendy.

command /twojakomenda:

Możemy od razu dorzucić sobie argumenty do niej, zrobimy tak jak chciałeś, czyli <nick> (właściwie to <player>) i <jeszczecos> (tutaj damy <text>).

command /twojakomenda <player> <text>:

W tym przypadku trzeba podać oba argumenty. Jeżeli ich nie podamy, wyświetli się to, co podaliśmy w 'usage' komendy (poradnik Pana Marudy masz, jest tam to opisane co to robi).

Możemy również zrobić argument opcjonalnym:

command /twojakomenda <player> [<text>]:

A możemy nawet od razu dodać domyślną wartość w przypadku niepodania argumentu.

command /twojakomenda <player> [<text="Witaj">]:

Następnie do komendy wstawiamy 'trigger', który jest obowiązkowy. Dalszy kod po nim będzie kodem komendy.

command /twojakomenda <player> [<text="Witaj">]:
	trigger:
		# Dalszy kod

Następnie do podanych argumentów możemy się odwołać poprzez 'arg-[numer argumentu]', przykładowo 'arg-1'.

command /twojakomenda <player> [<text="Witaj">]:
	trigger:
		send arg-2 to arg-1

Tutaj używamy w kodzie komendy efektu 'send', który wysyła wiadomość do danego gracza (lub grupy graczy czy też konsoli).

Teraz rzućmy okiem na składnię efektu 'send' (można ją znaleźć chociażby w tej dokumentacji Skript).

(message|send [message[s]]) %texts% [to %players/console%]

# ( ) oznacza wybór jednego z kilku elementów
# | oznacza "lub"
# [ ] oznacza opcjonalność (nie musimy tego podawać, ale przy podaniu może mieć wpływ na działanie kodu)

# Przykłady z dokumentacji:

message "A wild %player% appeared!"
message "This message is a distraction. Mwahaha!"
send "Your kill streak is %{kill streak::%uuid of player%}%." to player 
# Ostatni to nieco bardziej skomplikowany przykład, gdyż używamy zmiennych (wyjaśnione tutaj: https://dev.bukkit.org/projects/skript/pages/variables-explanation)

Jak widać, 'to %players/console%' jest również w kwadratowym nawiasie, co oznacza, że niekoniecznie trzeba to podawać. W komendzie Skript domyślnie wyśle wiadomość do 'sendera' (osoby wykonującej komendę, może to być również konsola).

Jednakże zawsze lepiej podać odbiorcę, aby mieć pewność, że wysyłamy do odpowiedniej osoby (lub konsoli).

Warto zauważyć, że w przykładach wiadomość jest podana w cudzysłowiu. My nie musimy tego robić, gdyż arg-2 jest już typem 'text' i nie musimy go zamieniać go na tekst.

To właściwie tyle, mam nadzieję, że wyjaśniłem to dość dobrze. Tutaj jeszcze znajdziesz ogólny poradnik do Skripta. Stary, ale jary.

Jeżeli pożądasz więcej wiedzy, poszukaj samemu. Co do załączonych przeze mnie linków w tym poście, na podesłanych stronkach po prawej masz spis treści.

Odnośnik do komentarza
https://skript.pl/temat/44824-zmienne/#findComment-281609
Udostępnij na innych stronach

  • 0
3 minuty temu, Yoiviss napisał:

mozemy przejsc po prostu na pv i wytłumaczę ci co dokładnie chce napisac? bo po tym dalej nie mogę ogarnąć.. wybacz za moją głupotę [a tu nie chce tego wysylac]

Nie no, spróbuj się odnieść do tego co napisałem i powiedz w którym momencie się gubisz, a postaram się ciebie naprowadzić na właściwe tory. Możliwe, że ktoś będzie miał podobny problem do twojego i moje dalsze wyjaśnienia pomogą zarówno tobie, jak i jemu.

EDIT:

Spokojnie, ja tu jestem od pomagania w razie potrzeby, nie besztania nowych. Staram się tobie pomóc.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/44824-zmienne/#findComment-281611
Udostępnij na innych stronach

  • 0

okej, to powiem z grubsza co chcę zrobić. 

chodzi o to, że chcę żeby po wpisaniu przez administratora /komenda Kormic nazwa

stworzył się region w zaznaczonym terenie przez WorldEdita i żeby z miejsca przypisał nick Kormic jako właściciela regionu i żeby region sie nazywał "nazwa"

[ i żeby to było pisane na "execute player command" że skrypt "wymusza" wysłanie tych komend przez executora

Edytowane przez Yoiviss
Odnośnik do komentarza
https://skript.pl/temat/44824-zmienne/#findComment-281614
Udostępnij na innych stronach

  • 0
1 minutę temu, Yoiviss napisał:

okej, to powiem z grubsza co chcę zrobić. 

chodzi o to, że chcę żeby po wpisaniu przez administratora /komenda Kormic nazwa

stworzył się region w zaznaczonym terenie przez WorldEdita i żeby z miejsca przypisał nick Kormic jako właściciela regionu i żeby region sie nazywał "nazwa"

Okej, rozumiem.

Więc tak, poprzez Skripta nie sprawdzisz w prosty sposób czy gracz zaznaczył dwa punkty za pomocą wanda, jednakże tworzenie regionu już jak najbardziej jest możliwe do zrobienia.

Użyjemy w tym celu efektu 'execute player command'.

execute player command "rg create [tutaj argument nr 2] [tutaj argument nr 1]"

Nie dam od razu tego na tacy, dobrze, abyś się również sam tego nauczył. Uwierz mi, satysfakcja będzie ogromna.

Wstawiamy w powyższą komendę argument 2. i argument 1. Podpowiem jedynie, że w tekście argument (oraz zmienne i każde inne wyrażenie) wstawiamy poprzez procenty.

send "Argument nr 1 to: %arg-1%"

Idąc śladem tego 'send', tak samo należy zrobić w powyższej komendzie.

Oczywiście sama linijka nic nie zrobi, potrzebujemy w tym celu własnej komendy.

Tak więc tworzymy własną komendę, w której typem pierwszego argumentu będzie 'offline player' (czyli gracz, który potencjalnie jest offline (ale nie musi być) w odróżnieniu od 'player', który zawsze musi być online), natomiast typem drugiego argumentu będzie 'text', gdyż chcemy podać nazwę naszego regionu.

command /twojakomenda <offline player> <text>:

Powinno to wyglądać mniej więcej tak. Argumenty robimy obowiązkowe, gdyż administrator i tak zapewne będzie wiedział co należy podać w komendzie (możesz opcjonalnie dodać 'usage' do komendy - tutaj ponownie odsyłam cię do poradnika Pana Marudy).

Nie możemy zapominać o 'trigger' w naszej komendzie, aby Skript wiedział gdzie rozpoczyna się właściwy kod naszej komendy.

I tak jak robiliśmy to z 'send' w naszej pierwszej komendzie, tak samo robimy to z wyżej podaną przeze mnie linijką, w której wykonujemy komendę poprzez gracza, która utworzy nam region.

Możesz oczywiście dorzucić sobie do komendy wymaganą permisję (permission) i wiadomość przy jej braku, gdy chcemy wykonać komendę (permission message).

Tym sposobem masz komendę, która utworzy region od razu z właścicielem.

Jak samemu widzisz, nie należy obawiać się pytań. Należy jedynie obawiać się niewiedzy i pozostawania w niej. Człowiek musi się uczyć nowych rzeczy całe życie.

To tyle ode mnie, mam nadzieję, że wszystko zrozumiałeś. Powodzenia ze Skriptem i życzę miłych wrażeń. :>

Odnośnik do komentarza
https://skript.pl/temat/44824-zmienne/#findComment-281621
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ę...