asdasdasafasf 0 Opublikowano 29 kwietnia 2024 Udostępnij Opublikowano 29 kwietnia 2024 proszę potrzebuje tego jak najszybciej Cytuj Odnośnik do komentarza https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Procix94 13 Opublikowano 29 kwietnia 2024 Udostępnij Opublikowano 29 kwietnia 2024 command /repair [<text>]: permission: repair.use permission message: &cBrak uprawnień do użycia tej komendy. trigger: if player has permission "repair.use": if arg-1 is not set: send "&cMusisz podać nazwę gracza." stop if arg-1 is a player: if arg-1's tool is air: send "&cGracz %{arg-1}% nie trzyma przedmiotu w ręce." stop set durability of arg-1's tool to 0 send "&aPrzedmiot gracza %{arg-1}% został naprawiony." else: send "&cGracz o nazwie %{arg-1}% nie jest online." else: send "&cNie masz uprawnień do użycia tej komendy." Cytuj Odnośnik do komentarza https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/#findComment-342058 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 29 kwietnia 2024 Udostępnij Opublikowano 29 kwietnia 2024 @Procix94 Pana kod zawiera wiele błędów, które czynią go bezużytecznym. Największym błędem w Pana kodzie jest przyrównywanie tekstu do gracza w 9. linijce. Tekst to po prostu tekst, gracz jest obiektem zawierającym wiele innych informacji. Zdecydowanie lepszym podejściem jest ustawienie typu argumentu pobieranego w komendzie jako 'player'. Dzięki temu od razu mamy pewność, że jest to gracz, który jest obecnie na serwerze. Jeśli Pan chciałby jednak trzymać się swojego rozwiązania, należałoby użyć wyrażenia 'parsed as'. arg-1 parsed as player Niemniej jednak jest to zwyczajne generowanie sobie problemów w kodzie, nie ma potrzeby wykorzystywania tak dziwnego rozwiązania. Drugim najważniejszym błędem jest próba wykorzystania argumentu w kodzie tak jakby był zmienną. %{arg-1}% - próba pobrania wartości zmiennej globalnej {arg-1} %arg-1% - pobieranie wartości pierwszego argumentu Rzecz jasna taka zmienna najprawdopodobniej nie istnieje, co skutkuje wyświetlaniem się "<none>" w miejscu nazwy gracza. Pan już ustawił w konfiguracji komendy wymaganą permisję, a więc warunek sprawdzający permisję wykonującego permisję jest redundantny. Ustawienie wytrzymałości przedmiotu gracza na 0 co prawda działa, jednak lepszym rozwiązaniem jest użycie efektu 'repair'. Pana kod zawiera wiele zagnieżdżonych warunków - taki sposób pisania kodu sprawia, że szybko staje się on nieczytelny. Zalecam używać odwróconych warunków wraz z instrukcją 'stop'. Przykład poniżej. if arg-1 is not set: send "Podaj argument." to sender stop # Dalszy kod... 12 godzin temu, asdasdasafasf napisał: proszę potrzebuje tego jak najszybciej Proszę bardzo. Skrypt oprócz sprawdzania czy gracz faktycznie trzyma coś w ręce, sprawdza również czy przedmiot jest możliwy do naprawy oraz czy jest uszkodzony. command /repair <player>: permission: server.command.repair permission message: &cNie posiadasz wystarczających uprawnień do użycia tej komendy. usage: &c/repair <gracz> trigger: if arg's tool is air: send "&cGracz %arg% &cnie trzyma niczego w ręce." to sender stop if max durability of arg's tool is 0: send "&cGracz %arg% &ctrzyma w ręce przedmiot, który jest nienaprawialny." to sender stop if durability of arg's tool is 0: send "&cGracz %arg% &ctrzyma w ręce przedmiot, który nie wymaga naprawy." to sender stop repair arg's tool send "&aPrzedmiot gracza %arg% &azostał naprawiony." to sender Cytuj Odnośnik do komentarza https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/#findComment-342061 Udostępnij na innych stronach Więcej opcji udostępniania...
0 asdasdasafasf 0 Opublikowano 30 kwietnia 2024 Autor Udostępnij Opublikowano 30 kwietnia 2024 dziękuje zaraz przetestuje Cytuj Odnośnik do komentarza https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/#findComment-342103 Udostępnij na innych stronach Więcej opcji udostępniania...
0 asdasdasafasf 0 Opublikowano 30 kwietnia 2024 Autor Udostępnij Opublikowano 30 kwietnia 2024 bardzo dziękuje, skrypt działa tak jak chciałem lecz ten skrypt nie sprawdza czy przedmiot jest uszkodzony W dniu 29.04.2024 o 16:11, Kormic napisał: @Procix94 Pana kod zawiera wiele błędów, które czynią go bezużytecznym. Największym błędem w Pana kodzie jest przyrównywanie tekstu do gracza w 9. linijce. Tekst to po prostu tekst, gracz jest obiektem zawierającym wiele innych informacji. Zdecydowanie lepszym podejściem jest ustawienie typu argumentu pobieranego w komendzie jako 'player'. Dzięki temu od razu mamy pewność, że jest to gracz, który jest obecnie na serwerze. Jeśli Pan chciałby jednak trzymać się swojego rozwiązania, należałoby użyć wyrażenia 'parsed as'. arg-1 parsed as player Niemniej jednak jest to zwyczajne generowanie sobie problemów w kodzie, nie ma potrzeby wykorzystywania tak dziwnego rozwiązania. Drugim najważniejszym błędem jest próba wykorzystania argumentu w kodzie tak jakby był zmienną. %{arg-1}% - próba pobrania wartości zmiennej globalnej {arg-1} %arg-1% - pobieranie wartości pierwszego argumentu Rzecz jasna taka zmienna najprawdopodobniej nie istnieje, co skutkuje wyświetlaniem się "<none>" w miejscu nazwy gracza. Pan już ustawił w konfiguracji komendy wymaganą permisję, a więc warunek sprawdzający permisję wykonującego permisję jest redundantny. Ustawienie wytrzymałości przedmiotu gracza na 0 co prawda działa, jednak lepszym rozwiązaniem jest użycie efektu 'repair'. Pana kod zawiera wiele zagnieżdżonych warunków - taki sposób pisania kodu sprawia, że szybko staje się on nieczytelny. Zalecam używać odwróconych warunków wraz z instrukcją 'stop'. Przykład poniżej. if arg-1 is not set: send "Podaj argument." to sender stop # Dalszy kod... Proszę bardzo. Skrypt oprócz sprawdzania czy gracz faktycznie trzyma coś w ręce, sprawdza również czy przedmiot jest możliwy do naprawy oraz czy jest uszkodzony. command /repair <player>: permission: server.command.repair permission message: &cNie posiadasz wystarczających uprawnień do użycia tej komendy. usage: &c/repair <gracz> trigger: if arg's tool is air: send "&cGracz %arg% &cnie trzyma niczego w ręce." to sender stop if max durability of arg's tool is 0: send "&cGracz %arg% &ctrzyma w ręce przedmiot, który jest nienaprawialny." to sender stop if durability of arg's tool is 0: send "&cGracz %arg% &ctrzyma w ręce przedmiot, który nie wymaga naprawy." to sender stop repair arg's tool send "&aPrzedmiot gracza %arg% &azostał naprawiony." to sender Cytuj Odnośnik do komentarza https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/#findComment-342104 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 30 kwietnia 2024 Udostępnij Opublikowano 30 kwietnia 2024 33 minuty temu, asdasdasafasf napisał: bardzo dziękuje, skrypt działa tak jak chciałem lecz ten skrypt nie sprawdza czy przedmiot jest uszkodzony Zanim udostępniłem Panu ten skrypt, sprawdziłem jego działanie pod kątem każdego warunku i nie wykryłem jakichkolwiek nieprawidłowości. Wedle mojej wiedzy wytrzymałość przedmiotu w Skript (jak i zawsze to miało miejsce w Bukkit API) zaczyna się w zerze i wzrasta aż nie osiągnie maksymalnej wytrzymałości - wtedy przedmiot się niszczy. Niemniej jednak mogło coś się zmienić ostatnio, nie neguję tego. Przyznam, że jakiś czas nie pisałem skryptów, więc kod przetestowałem na nieco starszym serwerze. Podam Panu nowy kod, którym może Pan sprawdzić jak to u Pana działa. command /repair <player>: permission: server.command.repair permission message: &cNie posiadasz wystarczających uprawnień do użycia tej komendy. usage: &c/repair <gracz> trigger: if arg's tool is air: send "&cGracz %arg% &cnie trzyma niczego w ręce." to sender stop if max durability of arg's tool is 0: send "&cGracz %arg% &ctrzyma w ręce przedmiot, który jest nienaprawialny." to sender stop if durability of arg's tool is 0: send "&cGracz %arg% &ctrzyma w ręce przedmiot, który nie wymaga naprawy." to sender stop send "Wytrzymałość = %durability of arg's tool%" to sender repair arg's tool send "&aPrzedmiot gracza %arg% &azostał naprawiony." to sender Dodałem jedną linijkę, ściślej mówiąc, linijkę 15. Niech Pan sprawdzi jaka wyświetla się wartość wytrzymałości przy próbie naprawy nieuszkodzonego przedmiotu dowolnego gracza. Jeśli na czacie wyświetli się "Wytrzymałość = 0", znaczy to, że Skript na Pana serwerze szwankuje. Jeśli jednak na czacie wyświetli się wartość różna od zera (na przykład 1562 dla diamentowego miecza), proszę zamienić linijkę 12. na poniższy warunek. if durability of arg's tool is max durability of arg's tool Gdy już Pan to zrobi, może Pan również usunąć linijkę, którą dodałem (linijka 15. wyświetlająca wartość wytrzymałości przedmiotu danego gracza). Na koniec ostrzegam, że Skript jest wyczulony na wcięcia w kodzie. W razie "rozjechania się" kodu proszę go poprawiać tabulatorem (nie spacją!). Cytuj Odnośnik do komentarza https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/#findComment-342105 Udostępnij na innych stronach Więcej opcji udostępniania...
0 asdasdasafasf 0 Opublikowano 20 maja 2024 Autor Udostępnij Opublikowano 20 maja 2024 teraz mam inny problem W dniu 30.04.2024 o 18:48, Kormic napisał: Zanim udostępniłem Panu ten skrypt, sprawdziłem jego działanie pod kątem każdego warunku i nie wykryłem jakichkolwiek nieprawidłowości. Wedle mojej wiedzy wytrzymałość przedmiotu w Skript (jak i zawsze to miało miejsce w Bukkit API) zaczyna się w zerze i wzrasta aż nie osiągnie maksymalnej wytrzymałości - wtedy przedmiot się niszczy. Niemniej jednak mogło coś się zmienić ostatnio, nie neguję tego. Przyznam, że jakiś czas nie pisałem skryptów, więc kod przetestowałem na nieco starszym serwerze. Podam Panu nowy kod, którym może Pan sprawdzić jak to u Pana działa. command /repair <player>: permission: server.command.repair permission message: &cNie posiadasz wystarczających uprawnień do użycia tej komendy. usage: &c/repair <gracz> trigger: if arg's tool is air: send "&cGracz %arg% &cnie trzyma niczego w ręce." to sender stop if max durability of arg's tool is 0: send "&cGracz %arg% &ctrzyma w ręce przedmiot, który jest nienaprawialny." to sender stop if durability of arg's tool is 0: send "&cGracz %arg% &ctrzyma w ręce przedmiot, który nie wymaga naprawy." to sender stop send "Wytrzymałość = %durability of arg's tool%" to sender repair arg's tool send "&aPrzedmiot gracza %arg% &azostał naprawiony." to sender Dodałem jedną linijkę, ściślej mówiąc, linijkę 15. Niech Pan sprawdzi jaka wyświetla się wartość wytrzymałości przy próbie naprawy nieuszkodzonego przedmiotu dowolnego gracza. Jeśli na czacie wyświetli się "Wytrzymałość = 0", znaczy to, że Skript na Pana serwerze szwankuje. Jeśli jednak na czacie wyświetli się wartość różna od zera (na przykład 1562 dla diamentowego miecza), proszę zamienić linijkę 12. na poniższy warunek. if durability of arg's tool is max durability of arg's tool Gdy już Pan to zrobi, może Pan również usunąć linijkę, którą dodałem (linijka 15. wyświetlająca wartość wytrzymałości przedmiotu danego gracza). Na koniec ostrzegam, że Skript jest wyczulony na wcięcia w kodzie. W razie "rozjechania się" kodu proszę go poprawiać tabulatorem (nie spacją!). trzeba resetować skrypty co chwile aby skrypt dalej działał jak mam to naprawić? Cytuj Odnośnik do komentarza https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/#findComment-342567 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 20 maja 2024 Udostępnij Opublikowano 20 maja 2024 8 godzin temu, asdasdasafasf napisał: teraz mam inny problem trzeba resetować skrypty co chwile aby skrypt dalej działał jak mam to naprawić? Mój skrypt nie wykonuje jakichkolwiek złożonych operacji, więc trudno jest mi uwierzyć w to, że mógłby być przyczyną powstałych problemów. Zalecam Panu przetestować skrypt na "czystym" serwerze jeśli to możliwe (minimum to wyłączenie na czas testów wszystkich skryptów, a później w razie dalszych problemów dodatków do Skript). Nie ukrywam jednak, że idealnymi warunkami byłoby przetestowanie skryptu na serwerze ze Skriptem jako jedynym pluginem na serwerze. Jeśli skrypt będzie działał zgodnie z założeniami, oznacza to, że któryś z pluginów (lub skryptów) powoduje problemy. Tutaj już musi Pan na własną rękę doszukać się źródła niepoprawnego działania skryptu. Pozdrawiam. Cytuj Odnośnik do komentarza https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/#findComment-342572 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
asdasdasafasf 0
proszę potrzebuje tego jak najszybciej
Odnośnik do komentarza
https://skript.pl/temat/57442-komenda-repair-nick-gracza-naprawia-mu-przedmiot-co-trzyma-w-%C5%82apce/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ą.