Skocz do zawartości
  • 0

Problem ze skryptem błąd


Pytanie

14 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
50 minut temu, DeepesT napisał:

Witam posiadam owy skrypt ale on owo nie działa wyrzuca jeden błąd --> https://ibb.co/XkLvN18

 

Zamiast tego:

if clicked slot is 13:

wstaw to:

if event.getRawSlot() is 13:

Powinno pomóc.

Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262590
Udostępnij na innych stronach

  • 0
53 minuty temu, DeepesT napisał:

Witam posiadam owy skrypt ale on owo nie działa wyrzuca jeden błąd --> https://ibb.co/XkLvN18

 

import:
    org.bukkit.event.inventory.InventoryClickEvent
    
command /test2:
    trigger:
        open chest inventory with 3 rows named "test" to player
        set slot 13 of player's current inventory to stone named "test"
 
on InventoryClickEvent:
    if event.getView().getTitle() is "test":
        cancel event
        if event.getSlot() is 13:
            send "testowa wiadomosc sk by ja tak ja no ten od skanu xd"

 

Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262591
Udostępnij na innych stronach

  • 0
9 minut temu, Cinu2421 napisał:

Jest jakas roznica miedzy getRawSlota getSlot?

W przypadku nasłuchiwania klikania danego slota przy customowym GUI lepiej jest użyć getRawSlot(), gdyż zwraca slot unikalny dla danego okienka w przeciwieństwie do getSlot().

EDIT:

Sprawdziłem dokumentację Spigota i znalazłem taki fragment:

getRawSlot() - The raw slot number clicked, ready for passing to #getItem(int) This slot number is unique for the view.

getSlot() - The slot number that was clicked, ready for passing to Inventory.getItem(int).

EDIT:

Mimo wszystko w tym skrypcie użycie jednego czy drugiego nie będzie miało większego wpływu na działanie. Ja używam w pluginach z przyzwyczajenia getRawSlot() i nigdy się nie zawiodłem.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262595
Udostępnij na innych stronach

  • 0
Teraz, DeepesT napisał:

jest jeden błąd -> https://ibb.co/cYyw4wb

event.getPlayer().sendMessage("cos")

Wstaw tę linijkę zamiast błędnej.

Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262599
Udostępnij na innych stronach

  • 0
1 godzinę temu, DeepesT napisał:

nie wyświetla się wiadomość :)

A, mój błąd. Przecież w InventoryClickEvent nie ma playera. Musisz użyć zamiast tego:

event.getWhoClicked().sendMessage("test")

Jeśli nadal nie zadziała, należy zrobić tak:

set {_player} to (Player) event.getWhoClicked()
event.{_player}.sendMessage("test")

Co prawda nie znam pełnych możliwości skript-reflecta, ale powinno mimo wszystko zadziałać.

Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262616
Udostępnij na innych stronach

  • 0
1 minutę temu, DeepesT napisał:

tylko jest problem jak kilknę w inventory w slot odpowiadający itemowi w gui to wykonuje sie to własnie send

Pokaż ponownie skrypt.

Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262618
Udostępnij na innych stronach

  • 0
2 minuty temu, DeepesT napisał:

 

Użyj getRawSlot(). Jeśli nie poskutkuje, użyj tego:

on InventoryClickEvent:
	if event.getView().getTitle() is "test":
		if event.getClickedInventory().getType() != InventoryType.PLAYER:
			cancel event
			if event.getSlot() is 13:
				event.getWhoClicked().sendMessage("test")

 

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262622
Udostępnij na innych stronach

  • 0

nie wiem do czego ci to, ale po skriptowemu też da się to zrobić w taki sposób jak ponizej:

on inventory click:
	if name of current inventory of player is "test":
		cancel event
		if clicked inventory is not inventory of player:
			if index of clicked slot is 13:
				send "test"

 

jeżeli chodzi o wysyłanie wiadomości to można kombinować z efektami bukkita, ale można też zwyczajnie nadać odbiorcę wiadomości na końcu efektu (bo eventy importowane nie mają zdefiniowanego gracza ani konsoli do których wiadomość mogłaby zostać wysłana)

send "wiadomosć" to event.getPlayer()
send "wiadomość" to event.getWhoClicked()

 

a jeżeli chcesz robić GUI, to odsyłam do mojego skryptu mGUI (z linku w sygnaturze)

 

Edytowane przez PanMaruda
Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262643
Udostępnij na innych stronach

  • 0

zobacz to, moze zadziala:
 

import:
    org.bukkit.event.inventory.InventoryClickEvent
    org.bukkit.entity.Player;
    
command /test2:
    trigger:
        open chest inventory with 3 rows named "test" to player
        set slot 13 of player's current inventory to stone named "test"
 
on InventoryClickEvent:
    if event.getView().getTitle() is "test":
        cancel event
        if event.getRawSlot()==13:
            Player p = (Player) event.getWhoClicked();
            p.sendMessage("test")

 

Odnośnik do komentarza
https://skript.pl/temat/41898-problem-ze-skryptem-b%C5%82%C4%85d/#findComment-262646
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ę...