Skocz do zawartości
  • 0

Skript kompas


Ebrawscool

Pytanie

Cześć potrzebuje skryptu takiego skryptu:

Gdy kliknie się prawym na kompas nazwany "&6&lSerwery" pokazuje się mała skrzynka z trzema itemami: Miecz, kilof, blok diamentów i każdy niech ma nazwe "TEKST" z lorem "LORE"

I jak można to niech będą one na środku skrzynki

Z góry dziękuje

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

Rekomendowane odpowiedzi

  • 0
21 minut temu, Ebrawscool napisał:

Cześć potrzebuje skryptu takiego skryptu:

Gdy kliknie się prawym na kompas nazwany "&6&lSerwery" pokazuje się mała skrzynka z trzema itemami: Miecz, kilof, blok diamentów i każdy niech ma nazwe "TEKST" z lorem "LORE"

I jak można to niech będą one na środku skrzynki

Z góry dziękuje

Proszę uprzejmie. Założyłem, że będzie to menu do zmiany trybów, więc zablokowałem dodatkowo wyciąganie przedmiotów z GUI. Na samej górze skryptu możliwe jest ustawienie nazwy okienka GUI.

options:
	GUIName: &6&lNazwa GUI

on right click:
	player's tool is compass named "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
	
on inventory click:
	event-inventory is not player's inventory
	name of event-inventory is "{@GUIName}"
	cancel event

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343631
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

Proszę uprzejmie. Założyłem, że będzie to menu do zmiany trybów, więc zablokowałem dodatkowo wyciąganie przedmiotów z GUI. Na samej górze skryptu możliwe jest ustawienie nazwy okienka GUI.

options:
	GUIName: &6&lNazwa GUI

on right click:
	player's tool is compass named "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
	
on inventory click:
	event-inventory is not player's inventory
	name of event-inventory is "{@GUIName}"
	cancel event

Pozdrawiam.

A można zrobić jeszcze by po kliknieńciu na jeden z itemów wykonywał komendę i zamykał tą skrzynkę?

I tak dla wiadomości robię serwer i potrzebuje do lobby

Z góry dziękuje

PS. (Co do komendy to niech będzie to /say "komenda")

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343633
Udostępnij na innych stronach

  • 0
5 minut temu, Ebrawscool napisał:

PS. (Co do komendy to niech będzie to /say "komenda")

Lepiej będzie wykorzystać wykonywanie komendy. Swoją drogą, komenda /say nie służy do wykonywania komend, a do wysyłania wiadomości do wszystkich graczy.

6 minut temu, Ebrawscool napisał:

A można zrobić jeszcze by po kliknieńciu na jeden z itemów wykonywał komendę i zamykał tą skrzynkę?

Nie ma najmniejszego problemu. W listenerze zdarzenia 'on inventory click' można nadpisać każdą komendę w wywołaniach funkcji execCommandCloseInv.

options:
	GUIName: &6&lNazwa GUI
	
local function execCommandCloseInv(p: player, t: text):
	close {_p}'s inventory
	make {_p} execute command {_t}

on right click:
	player's tool is compass named "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
	
on inventory click:
	event-inventory is not player's inventory
	name of event-inventory is "{@GUIName}"
	cancel event
	if index of clicked slot is 12:
		executeCommandCloseInv(player, "/komenda1")
	else if index of clicked slot is 13:
		executeCommandCloseInv(player, "/komenda2")
	else if index of clicked slot is 14:
		executeCommandCloseInv(player, "/komenda3")

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343636
Udostępnij na innych stronach

  • 0
4 minuty temu, Kormic napisał:

Lepiej będzie wykorzystać wykonywanie komendy. Swoją drogą, komenda /say nie służy do wykonywania komend, a do wysyłania wiadomości do wszystkich graczy.

Nie ma najmniejszego problemu. W listenerze zdarzenia 'on inventory click' można nadpisać każdą komendę w wywołaniach funkcji execCommandCloseInv.

options:
	GUIName: &6&lNazwa GUI
	
local function execCommandCloseInv(p: player, t: text):
	close {_p}'s inventory
	make {_p} execute command {_t}

on right click:
	player's tool is compass named "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
	
on inventory click:
	event-inventory is not player's inventory
	name of event-inventory is "{@GUIName}"
	cancel event
	if index of clicked slot is 12:
		executeCommandCloseInv(player, "/komenda1")
	else if index of clicked slot is 13:
		executeCommandCloseInv(player, "/komenda2")
	else if index of clicked slot is 14:
		executeCommandCloseInv(player, "/komenda3")

Pozdrawiam.

Czy jeśli wpisze zamiast np. "komenda3" jakąś inną to dalej będzie zamykać skrzynkę po kliknięciu? 

I jakby można resztę miejsc w skrzynce wypełnić zielonym szkłem (takim płaskim) to by było fajnie.

Chodzi o to że robię serwer i kdy kliknę to teleportuje na inny serwer ponieważ mam takie komendy

Z góry dziękuje

 

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343638
Udostępnij na innych stronach

  • 0
Gość Usunięty#58125
5 minut temu, Ebrawscool napisał:

Czy jeśli wpisze zamiast np. "komenda3" jakąś inną to dalej będzie zamykać skrzynkę po kliknięciu? 

I jakby można resztę miejsc w skrzynce wypełnić zielonym szkłem (takim płaskim) to by było fajnie.

Chodzi o to że robię serwer i kdy kliknę to teleportuje na inny serwer ponieważ mam takie komendy

Z góry dziękuje

 

to może ja odpowiem, co do pierwszego zdania to tak, skrzynka (gui) się zamknie i wykona sie komenda którą Pan ustawi zamiast /komenda1 itd
jezeli Pan chce zapelnic inne miejsca w skrzynce to  musi pan uzyc tego "set slot 0 of {_gui} to green glass pane" i tak dalej tylko zmienia Pan liczby zamiast 0 to np 1 tylko pomija Pan sloty w których znajduje się item który przenosi do innego servera

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343643
Udostępnij na innych stronach

  • 0
27 minut temu, Ebrawscool napisał:

Czy jeśli wpisze zamiast np. "komenda3" jakąś inną to dalej będzie zamykać skrzynkę po kliknięciu?

Jak najbardziej. Zamykanie GUI działa niezależnie od podanej komendy.

28 minut temu, Ebrawscool napisał:

I jakby można resztę miejsc w skrzynce wypełnić zielonym szkłem (takim płaskim) to by było fajnie.

W takim razie proszę podmienić kod listeneru zdarzenia 'on right click' na poniższy.

on right click:
	player's tool is compass named "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot (integers from 0 to 26) of {_gui} to lime glass pane named " "
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
21 minut temu, FilipK napisał:

jezeli Pan chce zapelnic inne miejsca w skrzynce to  musi pan uzyc tego "set slot 0 of {_gui} to green glass pane" i tak dalej tylko zmienia Pan liczby zamiast 0 to np 1 tylko pomija Pan sloty w których znajduje się item który przenosi do innego servera

Można tak robić, ale jest to bardzo niepraktyczne, ponieważ w ten sposób powstanie bardzo dużo niepotrzebnego kodu. Warto dodać, że nie trzeba omijać slotów na przedmioty - wystarczy ustawić wszędzie szyby, a dopiero później dodać przedmioty, które zastąpią istniejące szyby na środku skrzynki.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343649
Udostępnij na innych stronach

  • 0
18 minut temu, Kormic napisał:

Jak najbardziej. Zamykanie GUI działa niezależnie od podanej komendy.

W takim razie proszę podmienić kod listeneru zdarzenia 'on right click' na poniższy.

on right click:
	player's tool is compass named "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot (integers from 0 to 26) of {_gui} to lime glass pane named " "
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player

Można tak robić, ale jest to bardzo niepraktyczne, ponieważ w ten sposób powstanie bardzo dużo niepotrzebnego kodu. Warto dodać, że nie trzeba omijać slotów na przedmioty - wystarczy ustawić wszędzie szyby, a dopiero później dodać przedmioty, które zastąpią istniejące szyby na środku skrzynki.

Pozdrawiam.

musze uzyc zegaru ale i tak niestety skrypt nie działa

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343653
Udostępnij na innych stronach

  • 0
21 minut temu, Ebrawscool napisał:

musze uzyc zegaru ale i tak niestety skrypt nie działa

Zegar i kompas to dwa różne przedmioty.

Proszę się upewnić czy ten kompas różni się od najzwyczajniejszego kompasu jedynie tą ustawioną nazwą. Jeżeli posiada on jakikolwiek lore, bądź nałożone zaklęcia, a nawet różnice w NBT, skrypt nie zadziała.

Jeżeli jednak Panu wystarczy samo sprawdzanie nazwy narzędzia gracza, można zamienić linijkę 'player's tool is compass named ...' na:

name of player's tool is "&6&lSerwery"

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343654
Udostępnij na innych stronach

  • 0
6 minut temu, Kormic napisał:

Zegar i kompas to dwa różne przedmioty.

Proszę się upewnić czy ten kompas różni się od najzwyczajniejszego kompasu jedynie tą ustawioną nazwą. Jeżeli posiada on jakikolwiek lore, bądź nałożone zaklęcia, a nawet różnice w NBT, skrypt nie zadziała.

Jeżeli jednak Panu wystarczy samo sprawdzanie narzędzia gracza, można zamienić linijkę 'player's tool is compass named ...' na:

name of player's tool is "&6&lSerwery"

Pozdrawiam.

a mógłybym dostać cały skrypt? bo jakiś error się pojawia

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343657
Udostępnij na innych stronach

  • 0
6 minut temu, Ebrawscool napisał:

a mógłybym dostać cały skrypt? bo jakiś error się pojawia

Proszę.

options:
	GUIName: &6&lNazwa GUI
	
local function execCommandCloseInv(p: player, t: text):
	close {_p}'s inventory
	make {_p} execute command {_t}

on right click:
	name of player's tool is "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot (integers from 0 to 26) of {_gui} to lime glass pane named " "
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
	
on inventory click:
	event-inventory is not player's inventory
	name of event-inventory is "{@GUIName}"
	cancel event
	if index of clicked slot is 12:
		executeCommandCloseInv(player, "/komenda1")
	else if index of clicked slot is 13:
		executeCommandCloseInv(player, "/komenda2")
	else if index of clicked slot is 14:
		executeCommandCloseInv(player, "/komenda3")

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343658
Udostępnij na innych stronach

  • 0
15 godzin temu, Kormic napisał:

Proszę.

options:
	GUIName: &6&lNazwa GUI
	
local function execCommandCloseInv(p: player, t: text):
	close {_p}'s inventory
	make {_p} execute command {_t}

on right click:
	name of player's tool is "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot (integers from 0 to 26) of {_gui} to lime glass pane named " "
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
	
on inventory click:
	event-inventory is not player's inventory
	name of event-inventory is "{@GUIName}"
	cancel event
	if index of clicked slot is 12:
		executeCommandCloseInv(player, "/komenda1")
	else if index of clicked slot is 13:
		executeCommandCloseInv(player, "/komenda2")
	else if index of clicked slot is 14:
		executeCommandCloseInv(player, "/komenda3")

Pozdrawiam.

nie działa :(

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343687
Udostępnij na innych stronach

  • 0
Godzinę temu, Ebrawscool napisał:

nie działa :(

Ta informacja niewiele mi mówi, jest niemalże bezwartościowa.

Jak Pan sprawdził działanie skryptu? Proszę opisać krok po kroku. Dodatkowo, co konkretnie nie działa? Na którym etapie skrypt zawodzi?

Cenna będzie również informacja o wersji Skripta, wersjach zainstalowanych dodatków do Skript i wersji serwera.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343689
Udostępnij na innych stronach

  • 0
19 godzin temu, Kormic napisał:

Ta informacja niewiele mi mówi, jest niemalże bezwartościowa.

Jak Pan sprawdził działanie skryptu? Proszę opisać krok po kroku. Dodatkowo, co konkretnie nie działa? Na którym etapie skrypt zawodzi?

Cenna będzie również informacja o wersji Skripta, wersjach zainstalowanych dodatków do Skript i wersji serwera.

Pozdrawiam.

Jak zrobiłem reload skryptu nie było błędu a posiadam wersję 2.6.4 skrypta

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343737
Udostępnij na innych stronach

  • 0
Godzinę temu, Ebrawscool napisał:

Jak zrobiłem reload skryptu nie było błędu a posiadam wersję 2.6.4 skrypta

Zdecydowanie zbyt mało informacji. Jedyne co mogę powiedzieć to to, że skrypt nie mógł się przeładować poprawnie, ponieważ funkcje lokalne zostały dodane do Skripta w wersji 2.7.
Mniejsza o to. Nadal nie wiem z czym tak właściwie ma Pan problem, ponieważ nie odpowiedział Pan na moje pytania. Jedyne co usłyszałem to to, że "nie działa" i Skript po przeładowaniu skryptu nie zwrócił jakichkolwiek błędów.

Jeszcze raz proszę o odpowiedzi na wszystkie powyższe pytania. Jeżeli Pan nie ma motywacji aby jakkolwiek szczegółowo to opisać, ja również nie mam jej, aby pomóc. To działa w obie strony.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343742
Udostępnij na innych stronach

  • 0
Godzinę temu, Ebrawscool napisał:

Jak zrobiłem reload skryptu nie było błędu a posiadam wersję 2.6.4 skrypta

1. Podaj silnik i wersję serwera,

2. Zaktualizuj skripta do 1.7+,

3. Upewnij się że nie masz zbędnych addonów jak SkQuery lub niedziałających addonów, ponieważ to one mogą sprawiać, że błędy się nie pokazują,

4. Sprawdź czy nie ma błędów w konsoli.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343743
Udostępnij na innych stronach

  • 0
26 minut temu, Ebrawscool napisał:

po kliknęciu na rzecz komenda nie działa

Jak grochem o ścianę. Nadal brak informacji o serwerze, o które prosiłem, a będąc uczciwym, ja i jeszcze inna osoba prosiła.

Zakładam, że ma Pan wersję Skripta 2.7 lub wyższą, bo bez tego skrypt (ściślej mówiąc, fragment z wykonywaniem komendy) nie ma prawa zadziałać.
Być może jest problem ze składnią 'make %command senders% execute command %texts%', nie wiem i nie mam jak tego sprawdzić. Można spróbować zamienić ostatnią linijkę w funkcji 'execCommandCloseInv' na:

execute {_p} command {_t}

Jeżeli to nie pomoże, proszę odpowiedzieć na powyższe pytania dotyczące serwera. Proszę również pokazać skrypt, to znaczy jak on został zmodyfikowany pod względem komend i nazw.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343867
Udostępnij na innych stronach

  • 0
Teraz, Kormic napisał:

Jak grochem o ścianę. Nadal brak informacji o serwerze, o które prosiłem, a będąc uczciwym, ja i jeszcze inna osoba prosiła.

Zakładam, że ma Pan wersję Skripta 2.7 lub wyższą, bo bez tego skrypt (ściślej mówiąc, fragment z wykonywaniem komendy) nie ma prawa zadziałać.
Być może jest problem ze składnią 'make %command senders% execute command %texts%', nie wiem i nie mam jak tego sprawdzić. Można spróbować zamienić ostatnią linijkę w funkcji 'execCommandCloseInv' na:

execute {_p} command {_t}

Jeżeli to nie pomoże, proszę odpowiedzieć na powyższe pytania dotyczące serwera. Proszę również pokazać skrypt, to znaczy jak on został zmodyfikowany pod względem komend i nazw.

Pozdrawiam.

a dostałbym cały skrypt? fajnie by było bo nigdy nie wiem co sklejić

Informacje

-wersja 1.20.1

-skript 2.7

-błędy,errory: brak

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343868
Udostępnij na innych stronach

  • 0
23 minuty temu, Ebrawscool napisał:

a dostałbym cały skrypt? fajnie by było bo nigdy nie wiem co sklejić

Informacje

-wersja 1.20.1

-skript 2.7

-błędy,errory: brak

Jeżeli ma Pan wersję 1.20.1, proszę zaktualizować Skripta do wersji 2.8.7, czyli najnowszego stabilnego wydania. Proszę również przetestować skrypt bez dodatków do Skripta obecnych na serwerze.

Swoją drogą, zauważyłem właśnie błąd w skrypcie. Zapomniałem podmienić nazwę funkcji przy jej wywoływaniu.

options:
	GUIName: &6&lNazwa GUI
	
local function execCommandCloseInv(p: player, t: text):
	close {_p}'s inventory
	execute {_p} command {_t}

on right click:
	name of player's tool is "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot (integers from 0 to 26) of {_gui} to lime glass pane named " "
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
	
on inventory click:
	event-inventory is not player's inventory
	name of event-inventory is "{@GUIName}"
	cancel event
	if index of clicked slot is 12:
		execCommandCloseInv(player, "/komenda1")
	else if index of clicked slot is 13:
		execCommandCloseInv(player, "/komenda2")
	else if index of clicked slot is 14:
		execCommandCloseInv(player, "/komenda3")

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343871
Udostępnij na innych stronach

  • 0
3 godziny temu, Kormic napisał:

Jeżeli ma Pan wersję 1.20.1, proszę zaktualizować Skripta do wersji 2.8.7, czyli najnowszego stabilnego wydania. Proszę również przetestować skrypt bez dodatków do Skripta obecnych na serwerze.

Swoją drogą, zauważyłem właśnie błąd w skrypcie. Zapomniałem podmienić nazwę funkcji przy jej wywoływaniu.

options:
	GUIName: &6&lNazwa GUI
	
local function execCommandCloseInv(p: player, t: text):
	close {_p}'s inventory
	execute {_p} command {_t}

on right click:
	name of player's tool is "&6&lSerwery"
	set {_gui} to chest inventory with 3 rows named "{@GUIName}"
	set slot (integers from 0 to 26) of {_gui} to lime glass pane named " "
	set slot 12 of {_gui} to iron sword named "TEKST" with lore "LORE"
	set slot 13 of {_gui} to iron pickaxe named "TEKST" with lore "LORE"
	set slot 14 of {_gui} to diamond block named "TEKST" with lore "LORE"
	open {_gui} to player
	
on inventory click:
	event-inventory is not player's inventory
	name of event-inventory is "{@GUIName}"
	cancel event
	if index of clicked slot is 12:
		execCommandCloseInv(player, "/komenda1")
	else if index of clicked slot is 13:
		execCommandCloseInv(player, "/komenda2")
	else if index of clicked slot is 14:
		execCommandCloseInv(player, "/komenda3")

Pozdrawiam.

A czy inne skrypty będą działać na 2.8.7? Chyba Pan wie o jakie mi chodzi ponieważ na dużo z nich pan odpowiedział?

Odnośnik do komentarza
https://skript.pl/temat/57818-skript-kompas/#findComment-343889
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ę...