Skocz do zawartości
HotAngel2K17

Inventory menu - Jak zrobić funkcyjne inventory bez bugów?

Rekomendowane odpowiedzi

Użytkownik

Siema!

Napotykam się ostatnio często ze stwierdzeniem, że gui w skrypcie się buguje. 

Jest to FAKE

Funkcja format slot jest zbugowana :)

Także można spotkać się z odpowiedziami "użyj sdGui" 

Można zrobić gui bez bugów, dziś wam to pokaże.

 

Pierwszy krok

Przygotuj komendę i samo otworzenie inventory

command /komenda [<text>]
	trigger:
  		open chest with 1 row named "&6Nasze inventory !" to player

Otwiera to nam inventory (czyli gui) ale bez żadnych slotów, teraz trzeba je dodać

set player's current inventory's slot 0 to diamond named "&6Nazwijcie to jak chcecie" with lore "&c» &7No dawaj nie zbugujesz mnie :D!"

A w kodzie będzie to wyglądać następująco:

command /komenda [<text>]:
  	trigger:
  		open chest with 1 row named "&6Nasze inventory !" to player
  		set player's current inventory's slot 0 to diamond named "&6Nazwijcie to jak chcecie" with lore "&c» &7No dawaj nie zbugujesz mnie :D!"

Nie trzeba dawać with lore  :) 

Mamy już inventory ale da się wyciągać przedmioty.

Drugi krok

Pozbędziemy się wyciągania itemów

Pierw dopiszmy event dzięki któremu nie będzie się dało bugować, a jest nim on inventory click:  Po angielsku każdy będzie wiedzieć co to znaczy.

on inventory click:

Teraz musimy dodać pobieranie nazwy inventory w następujący sposób

on inventory click:
	if inventory name of current inventory of player is "&6Nasze inventory !":

Wpisujemy tam nazwe naszego inventory

Teraz musimy pobrać item lub slot.

Są 2 sposoby

1 sposób - Pobieranie itemu:

if player's current inventory's slot slot is diamond:

Po sprawdzeniu inventory sprawdza item.

2 sposób - Pobieranie klikanego slota:

if clicked slot is 0:

Sprawdza tylko slot, nie item

W kodzie będzie to wyglądać tak:

on inventory click:
	if inventory name of current inventory of player is "&6Nasze inventory !":
		if player's current inventory's slot slot is diamond:

Lub tak

on inventory click:
	if inventory name of current inventory of player is "&6Nasze inventory !":
		if clicked slot is 0:

Teraz kolejna część ! Trzeba dodać jakąś akcję, ja dodam komendę wykonywaną przez gracza, wiadomość do niego, i blokowanie wyjmowania itemu

Pokaże wam tylko co zrobić aby nie bugowało się inventory. Komendę i wysyłanie wiadomości to podstawy skript, jeżeli ich nie znasz wróć do podstaw

A ten event to !!!!!!

cancel event

Tak cancel event, jak wiemy zatrzymuje on akcję, blokuje ją, a w kodzie wygląda to tak !

on inventory click:
	if inventory name of current inventory of player is "&6Nasze inventory !":
		if player's current inventory's slot slot is diamond:
			send "Czy ty to chcesz wyjąc?"
			execute console command "kick %player%"
			execute player command "sudo"
			cancel event

To w sumie tyle, będą aktualizacje tego. Więc trzymajcie się i powodzenia. 

Oczekuję na hejty gdyż je kocham

Edytowane przez HotAngel2K17

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik

Poradnik dobry tylko 
szkoda że pokazałeś zbugowaną opcję.

U mnie gdy robię tak

command /komenda [<text>]:
  	trigger:
  		open chest with 1 row named "&6Nasze inventory !" to player
		wait 1 tick
  		set player's current inventory's slot 0 to diamond named "&6Nazwijcie to jak chcecie" with lore "&c» &7No dawaj nie zbugujesz mnie :D!"

to gdy szybko zamykam i otwieram ekwipunek dostaję do niego przedmioty które mają być w gui
Lecz gdy zrobię tak:

command /komenda [<text>]:
  	trigger:
		wait 1 tick
  		open chest with 1 row named "&6Nasze inventory !" to player
  		set player's current inventory's slot 0 to diamond named "&6Nazwijcie to jak chcecie" with lore "&c» &7No dawaj nie zbugujesz mnie :D!"

To w żaden sposób nie idzie zabrać przedmiotów
Nie wiem czy to jest tylko u mnie
Pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik

JA u siebie zrobiłem inaczej, ustawiłem po prostu zmienną {Otwieranie::%player%} gdy wykonuje się komende, a gdy się klika na skrzynke / enderchest itp. po prostu canceluje event :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik

@MateoxPL tak, aby się kompletnie nie bugowało to robisz tak:

		set {_x} to chest with 1 rows named "&6Nasze inventory !"
		set slot 0 of {_x} to diamond named "&6Nazwijcie to jak chcecie" with lore "&c» &7No dawaj nie zbugujesz mnie :D!"
		open {_x} to player

Wtedy już otwiera dla gracza gotowe GUI z wszystkimi itemami :P

I gdy do tego jeszcze dodasz event on inventory click i zablokujesz wyciąganie, wtedy jest miodzio :D

A co do poradnika to jest OK :D Widzę, że poszedłeś w moje ślady, także życzę powodzenia :D

Pozdrawiam #Knugi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się


  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×