Skocz do zawartości
  • 0

/portfel - gui


iYowee

Pytanie

Witam,

Robie skrypt na komende /portfel lecz gdy ustawilem

to podczas reloadowania skriptu nie wyskakuje zaden blad lecz gdy wchodze w gui i nakierowywuje mysz na ten 4 slot nie pokazuje ze gracz ma 0.00zl tylko {cash::mójnick}zl

Jak to naprawic?

Odnośnik do komentarza
https://skript.pl/temat/57856-portfel-gui/
Udostępnij na innych stronach

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
16 minut temu, iYowee napisał:

podczas reloadowania skriptu nie wyskakuje zaden blad lecz gdy wchodze w gui i nakierowywuje mysz na ten 4 slot nie pokazuje ze gracz ma 0.00zl tylko {cash::mójnick}zl

Brak procentów obejmujących nazwę zmiennej jest powodem takiego działania. Jeżeli Skript ma przedstawić wartość zmiennej, a nie jej nazwę, należy użyć znaku procentu. Przykład poniżej.

send "Ilość Twoich punktów: %{totalPoints::%player%}%" to player

Mam również jedną uwagę co do wykorzystania listeneru zdarzenia 'on first join'. Zakładam, że istnieje już grupa graczy (wliczając Pana), która dołączyła do serwera przed załadowaniem tego skryptu, więc zdarzenie pierwszego dołączenia nie będzie dla nich wywołane, co w konsekwencji doprowadzi do wyświetlenia '<none>' w utworzonym GUI (ponieważ nie zostanie utworzona dla nich zmienna przechowująca ilość pieniędzy).

Jak to naprawić? Na szczęście rozwiązanie jest banalnie proste. Wystarczy wykorzystać listener zdarzenia 'on join' i w nim sprawdzać czy istnieje zmienna przechowująca stan konta przypisana do gracza. Jeśli nie, ustawiamy jej wartość na 0.

on join:
	{zmienna::%player%} is not set
	set {zmienna::%player%} to 0

Alternatywnym rozwiązaniem jest użycie sekcji 'variables', która będzie sprawdzała czy zmienna istnieje. Nie zalecam jednak z niej korzystać, ponieważ jej zakres użycia jest ograniczony - na przykład nie można w niej wykorzystać wyrażenia 'uuid of player', które jest zalecanym zamiennikiem wyrażenia 'player' w nazwie zmiennej.

variables:
	{zmienna::%player%} = 0

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57856-portfel-gui/#findComment-343823
Udostępnij na innych stronach

  • 0
9 minut temu, Kormic napisał:

Brak procentów obejmujących nazwę zmiennej jest powodem takiego działania. Jeżeli Skript ma przedstawić wartość zmiennej, a nie jej nazwę, należy użyć znaku procentu. Przykład poniżej.

send "Ilość Twoich punktów: %{totalPoints::%player%}%" to player

Mam również jedną uwagę co do wykorzystania listeneru zdarzenia 'on first join'. Zakładam, że istnieje już grupa graczy (wliczając Pana), która dołączyła do serwera przed załadowaniem tego skryptu, więc zdarzenie pierwszego dołączenia nie będzie dla nich wywołane, co w konsekwencji doprowadzi do wyświetlenia '<none>' w utworzonym GUI (ponieważ nie zostanie utworzona dla nich zmienna przechowująca ilość pieniędzy).

Jak to naprawić? Na szczęście rozwiązanie jest banalnie proste. Wystarczy wykorzystać listener zdarzenia 'on join' i w nim sprawdzać czy istnieje zmienna przechowująca stan konta przypisana do gracza. Jeśli nie, ustawiamy jej wartość na 0.

on join:
	{zmienna::%player%} is not set
	set {zmienna::%player%} to 0

Alternatywnym rozwiązaniem jest użycie sekcji 'variables', która będzie sprawdzała czy zmienna istnieje. Nie zalecam jednak z niej korzystać, ponieważ jej zakres użycia jest ograniczony - na przykład nie można w niej wykorzystać wyrażenia 'uuid of player', które jest zalecanym zamiennikiem wyrażenia 'player' w nazwie zmiennej.

variables:
	{zmienna::%player%} = 0

Pozdrawiam.

z tym "mojnick" chodzilo mi o to ze w gui sie tak pokazuje, dodalem funkcje z tym on join ze ustawia zmienna na 0 jak nie jest ustawiona, lecz dalej nie dziala

Odnośnik do komentarza
https://skript.pl/temat/57856-portfel-gui/#findComment-343825
Udostępnij na innych stronach

  • 0
18 minut temu, iYowee napisał:

z tym "mojnick" chodzilo mi o to ze w gui sie tak pokazuje, dodalem funkcje z tym on join ze ustawia zmienna na 0 jak nie jest ustawiona, lecz dalej nie dziala

Ale ja przecież przedstawiłem rozwiązanie na samym początku mojego postu. Proszę czytać ze zrozumieniem.

29 minut temu, Kormic napisał:

Brak procentów obejmujących nazwę zmiennej jest powodem takiego działania. Jeżeli Skript ma przedstawić wartość zmiennej, a nie jej nazwę, należy użyć znaku procentu. Przykład poniżej.

send "Ilość Twoich punktów: %{totalPoints::%player%}%" to player

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57856-portfel-gui/#findComment-343826
Udostępnij na innych stronach

  • 0
4 minuty temu, Kormic napisał:

Ale ja przecież przedstawiłem rozwiązanie na samym początku mojego postu. Proszę czytać ze zrozumieniem.

Pozdrawiam.

Dziekuje a da sie zrobic zeby zamiast 0zl pisalo 0.00zl ?

 

Odnośnik do komentarza
https://skript.pl/temat/57856-portfel-gui/#findComment-343827
Udostępnij na innych stronach

  • 0
23 minuty temu, iYowee napisał:

Dziekuje a da sie zrobic zeby zamiast 0zl pisalo 0.00zl ?

 

Jak najbardziej. Jedyna trudność jest taka, że nie istnieje jakakolwiek funkcja lub wyrażenie w Skript'cie pozwalające na to. Istnieje kilka rozwiązań, ja wymienię dwa.

  1. Stworzenie własnej funkcji w Skript'cie przetwarzającą formatowaną liczbę na jej reprezentację tekstową. Kod polegałby na zamianie liczby na tekst, dzieleniu jej na kropce, dopisywaniu zer lub ucinaniu części ułamkowej i składaniu wszystkiego z powrotem.
  2. Użycie dodatku skript-reflect w celu skorzystania z klasy java.text.DecimalFormat.
    import:
    	java.text.DecimalFormat
    
    local function formatNumber(n: number, format: text) :: text:
    	set {_df} to new DecimalFormat({_format})
    	return {_df}.format({_n})

    Przykład użycia:

    command /formatnumber <number>:
    	trigger:
    		send formatNumber(arg, "0.00")
            
    # /formatnumber 3.581 -> 3.58
    # /formatnumber 0.9 -> 0.90

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57856-portfel-gui/#findComment-343829
Udostępnij na innych stronach

  • 0
8 minut temu, Kormic napisał:

Jak najbardziej. Jedyna trudność jest taka, że nie istnieje jakakolwiek funkcja lub wyrażenie w Skript'cie pozwalające na to. Istnieje kilka rozwiązań, ja wymienię dwa.

  1. Stworzenie własnej funkcji w Skript'cie przetwarzającą formatowaną liczbę na jej reprezentację tekstową. Kod polegałby na zamianie liczby na tekst, dzieleniu jej na kropce, dopisywaniu zer lub ucinaniu części ułamkowej i składaniu wszystkiego z powrotem.
  2. Użycie dodatku skript-reflect w celu skorzystania z klasy java.text.DecimalFormat.
    import:
    	java.text.DecimalFormat
    
    local function formatNumber(n: number, format: text) :: text:
    	set {_df} to new DecimalFormat({_format})
    	return {_df}.format({_n})

    Przykład użycia:

    command /formatnumber <number>:
    	trigger:
    		send formatNumber(arg, "0.00")
            
    # /formatnumber 3.581 -> 3.58
    # /formatnumber 0.9 -> 0.90

Pozdrawiam.

a jezeli mam komende do dodawania waluty to da sie zmienic w jakis sposob set {cash::%player-argument%} to arg 3 na dodanie tej waluty, a nie ustawienie jej?

Edytowane przez iYowee
Odnośnik do komentarza
https://skript.pl/temat/57856-portfel-gui/#findComment-343830
Udostępnij na innych stronach

  • 0
4 godziny temu, iYowee napisał:

a jezeli mam komende do dodawania waluty to da sie zmienic w jakis sposob set {cash::%player-argument%} to arg 3 na dodanie tej waluty, a nie ustawienie jej?

Głowiłem się przez 5 minut czego pytanie dotyczy i zrozumiałem, że jest to pytanie dotyczące całkiem innego skryptu.

Tak, da się. Proszę użyć efektu 'add'.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57856-portfel-gui/#findComment-343833
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ę...