iYowee 2 Opublikowano 13 lipca 2024 Udostępnij Opublikowano 13 lipca 2024 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? Cytuj Odnośnik do komentarza https://skript.pl/temat/57856-portfel-gui/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 13 lipca 2024 Udostępnij Opublikowano 13 lipca 2024 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. Cytuj Odnośnik do komentarza https://skript.pl/temat/57856-portfel-gui/#findComment-343823 Udostępnij na innych stronach Więcej opcji udostępniania...
0 iYowee 2 Opublikowano 13 lipca 2024 Autor Udostępnij Opublikowano 13 lipca 2024 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 Cytuj Odnośnik do komentarza https://skript.pl/temat/57856-portfel-gui/#findComment-343825 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 13 lipca 2024 Udostępnij Opublikowano 13 lipca 2024 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. Cytuj Odnośnik do komentarza https://skript.pl/temat/57856-portfel-gui/#findComment-343826 Udostępnij na innych stronach Więcej opcji udostępniania...
0 iYowee 2 Opublikowano 13 lipca 2024 Autor Udostępnij Opublikowano 13 lipca 2024 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 ? Cytuj Odnośnik do komentarza https://skript.pl/temat/57856-portfel-gui/#findComment-343827 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 13 lipca 2024 Udostępnij Opublikowano 13 lipca 2024 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. 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. 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. Cytuj Odnośnik do komentarza https://skript.pl/temat/57856-portfel-gui/#findComment-343829 Udostępnij na innych stronach Więcej opcji udostępniania...
0 iYowee 2 Opublikowano 13 lipca 2024 Autor Udostępnij Opublikowano 13 lipca 2024 (edytowane) 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. 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. 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 13 lipca 2024 przez iYowee Cytuj Odnośnik do komentarza https://skript.pl/temat/57856-portfel-gui/#findComment-343830 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 13 lipca 2024 Udostępnij Opublikowano 13 lipca 2024 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. Cytuj Odnośnik do komentarza https://skript.pl/temat/57856-portfel-gui/#findComment-343833 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
iYowee 2
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
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ą.