wikt0r3k 1 Opublikowano 14 sierpnia 2025 Udostępnij Opublikowano 14 sierpnia 2025 Wstawiam tutaj bo nie wiem, gdzie indziej będzie pasować Prosty skrypt na komendę /friend Taki co sobie machnąłem na localhoście na szybko Na ten moment skrypt zawiera: /friend add [nick] - Wysyła zaproszenie do znajomych do wpisanego gracza /friend remove [nick] - Usuwa gracza ze znajomych /friend list - Wyświetla listę znajomych z podziałem na tych online i tych offline (nie zrobiłem podziału na strony, bo w moim przypadku tej potrzeby nie było) /friend accept [nick] - Akceptuje zaproszenie od gracza /friend reject [nick] - Odrzuca zaproszenie od gracza blokując mu na 5 minut możliwość zapraszania /friend [nick] - skrót komendy /friend add, stosowany na wielu serwerach Pluginy/Addony: Skript (kto by pomyślał) LuckPerms (rangi i ich prefixy) SkUniversal (dzięki temu addonowi używam prefixów z LP) Rzeczy, których na pewno nie będzie w tym skrypcie (bo mi się nie chce ich dodawać): Podział listy znajomych na strony Informacja na jakim serwerze/świecie znajduje się nasz przyjaciel, jeżeli jest online Tab Completer (no dobra, tego akurat nie umiem) Jest tanio? Jest tanio. Jest dobrze? Jest tanio. A jeżeli serio jakiś update bym miał zrobić do tego skryptu, to możecie zostawić propozycję, chętnie poczytam i może coś z nich zrobię. Cytuj Odnośnik do komentarza https://skript.pl/temat/58833-skrypt-na-friends/ Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 15 sierpnia 2025 Udostępnij Opublikowano 15 sierpnia 2025 @wikt0r3k Skrypt wygląda całkiem obiecująco, ale znajdują się w nim cztery rzeczy, nad którymi należałoby się pochylić: Komenda /friend [nazwa] nie zadziała w przypadku graczy, którzy mają nazwę add, remove, list, accept i reject. Prawdopodobieństwo, że gracz mający jedną z wymienionych nazw dołączy do serwera jest bardzo małe, jednakże trzeba o tym pamiętać. Aby to nie sprawiało problemu, sugeruję usunięcie tego "skrótu" i używanie pełnej formy, to znaczy /friend add [nazwa]. W przypadku stosowania opóźnień w kodzie należy być ostrożnym i mieć na uwadze to czy skrypt poprawnie będzie działał po restarcie serwera. Od razu mogę powiedzieć, że restart serwera w trakcie oczekiwania na wygaśnięcie zaproszenia sprawi, że nigdy do niego nie dojdzie. W tej sytuacji można zastosować wymienione dalej rozwiązania: horologe.sk - pozwala na tworzenie opóźnień, które są zapisywane przy zatrzymaniu serwera i kontynuowane po jego ponownym starcie, cykliczne zadanie (np. every 1 second) odliczające 60 sekund i zapisujące opóźnienie w zmiennej przypisanej do gracza, można też po prostu unieważnić zaproszenie przy zatrzymaniu serwera (zdarzenie on server stop), co wydaje się najlepsze. Cooldown nie powinien być zmniejszany co sekundę gdy gracz jest na serwerze, ponieważ sprawia to, że nie będzie on aktualizowany gdy gracz jest offline. Powinno być to zastąpione obliczaniem różnicy czasu. Poradnik opisujący to można znaleźć tutaj. Nie wiem czy można ponownie dołączyć do serwera (tzw. rejoin) w czasie krótszym niż sekunda, ale jeśli tak, istnieje ryzyko, że wiele instancji tej samej pętli while może działać dla jednego gracza jeśli wykona on rejoin np. w 0.9 sekundy (18 ticków) i przy okazji "ominie" wykonanie pętli. Jeśli moje obawy tutaj są uzasadnione, należałoby na przykład generować losowe UUID przy każdym rozpoczęciu pętli i zapisywać w zmiennej globalnej, i przy każdym jej wykonaniu sprawdzać czy UUID się zmieniło - jeśli tak, należy wyjść z pętli, czyli zakończyć ją. Pozdrawiam. wikt0r3k 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/58833-skrypt-na-friends/#findComment-347024 Udostępnij na innych stronach Więcej opcji udostępniania...
tylkopodskrypty 2 Opublikowano 18 sierpnia 2025 Udostępnij Opublikowano 18 sierpnia 2025 W dniu 15.08.2025 o 00:55, wikt0r3k napisał: Wstawiam tutaj bo nie wiem, gdzie indziej będzie pasować Prosty skrypt na komendę /friend Taki co sobie machnąłem na localhoście na szybko Na ten moment skrypt zawiera: /friend add [nick] - Wysyła zaproszenie do znajomych do wpisanego gracza /friend remove [nick] - Usuwa gracza ze znajomych /friend list - Wyświetla listę znajomych z podziałem na tych online i tych offline (nie zrobiłem podziału na strony, bo w moim przypadku tej potrzeby nie było) /friend accept [nick] - Akceptuje zaproszenie od gracza /friend reject [nick] - Odrzuca zaproszenie od gracza blokując mu na 5 minut możliwość zapraszania /friend [nick] - skrót komendy /friend add, stosowany na wielu serwerach Pluginy/Addony: Skript (kto by pomyślał) LuckPerms (rangi i ich prefixy) SkUniversal (dzięki temu addonowi używam prefixów z LP) Rzeczy, których na pewno nie będzie w tym skrypcie (bo mi się nie chce ich dodawać): Podział listy znajomych na strony Informacja na jakim serwerze/świecie znajduje się nasz przyjaciel, jeżeli jest online Tab Completer (no dobra, tego akurat nie umiem) Jest tanio? Jest tanio. Jest dobrze? Jest tanio. A jeżeli serio jakiś update bym miał zrobić do tego skryptu, to możecie zostawić propozycję, chętnie poczytam i może coś z nich zrobię. on tab completer on "/friend": if tab argument 2 is not set: set tab argument for position 1 to "add","list","remove","accept","reject" Cytuj Odnośnik do komentarza https://skript.pl/temat/58833-skrypt-na-friends/#findComment-347032 Udostępnij na innych stronach Więcej opcji udostępniania...
wikt0r3k 1 Opublikowano 18 sierpnia 2025 Autor Udostępnij Opublikowano 18 sierpnia 2025 W dniu 15.08.2025 o 12:59, Kormic napisał: Skrypt wygląda całkiem obiecująco, ale znajdują się w nim cztery rzeczy, nad którymi należałoby się pochylić: Komenda /friend [nazwa] nie zadziała w przypadku graczy, którzy mają nazwę add, remove, list, accept i reject. Prawdopodobieństwo, że gracz mający jedną z wymienionych nazw dołączy do serwera jest bardzo małe, jednakże trzeba o tym pamiętać. Aby to nie sprawiało problemu, sugeruję usunięcie tego "skrótu" i używanie pełnej formy, to znaczy /friend add [nazwa]. W przypadku stosowania opóźnień w kodzie należy być ostrożnym i mieć na uwadze to czy skrypt poprawnie będzie działał po restarcie serwera. Od razu mogę powiedzieć, że restart serwera w trakcie oczekiwania na wygaśnięcie zaproszenia sprawi, że nigdy do niego nie dojdzie. W tej sytuacji można zastosować wymienione dalej rozwiązania: horologe.sk - pozwala na tworzenie opóźnień, które są zapisywane przy zatrzymaniu serwera i kontynuowane po jego ponownym starcie, cykliczne zadanie (np. every 1 second) odliczające 60 sekund i zapisujące opóźnienie w zmiennej przypisanej do gracza, można też po prostu unieważnić zaproszenie przy zatrzymaniu serwera (zdarzenie on server stop), co wydaje się najlepsze. Cooldown nie powinien być zmniejszany co sekundę gdy gracz jest na serwerze, ponieważ sprawia to, że nie będzie on aktualizowany gdy gracz jest offline. Powinno być to zastąpione obliczaniem różnicy czasu. Poradnik opisujący to można znaleźć tutaj. Nie wiem czy można ponownie dołączyć do serwera (tzw. rejoin) w czasie krótszym niż sekunda, ale jeśli tak, istnieje ryzyko, że wiele instancji tej samej pętli while może działać dla jednego gracza jeśli wykona on rejoin np. w 0.9 sekundy (18 ticków) i przy okazji "ominie" wykonanie pętli. Jeśli moje obawy tutaj są uzasadnione, należałoby na przykład generować losowe UUID przy każdym rozpoczęciu pętli i zapisywać w zmiennej globalnej, i przy każdym jej wykonaniu sprawdzać czy UUID się zmieniło - jeśli tak, należy wyjść z pętli, czyli zakończyć ją. Pozdrawiam. [1] Jest to jakieś rozwiązanie problemu, który jak sam zresztą wspomniałeś - jest mało prawdopodobne, że się wydarzy, lecz dalej nie rozumiem sensu wyrzucenia "skrótowej" wersji tej komendy, skoro obie formy działają. Po prostu dla tych 5 nicków niestety trzeba pisać te dłuższą wersję. [2] Poczytałem, popróbowałem i finalnie postawiłem na tą drugą opcję. Możliwe, że na dniach wrzucę już wersję z tą poprawą. [3] Akurat za ten punkt to dziękuję z całego serca, przydał się przy okazji w innych skryptach [4] Z tego co mi się wydaje, nie jest to możliwe przez to jak działa łączenie na serwer (Nawiązywanie nowego połączenia, ładowanie pozycji gracza itp.) Cytuj Odnośnik do komentarza https://skript.pl/temat/58833-skrypt-na-friends/#findComment-347033 Udostępnij na innych stronach Więcej opcji udostępniania...
wikt0r3k 1 Opublikowano 18 sierpnia 2025 Autor Udostępnij Opublikowano 18 sierpnia 2025 3 godziny temu, tylkopodskrypty napisał: on tab completer on "/friend": if tab argument 2 is not set: set tab argument for position 1 to "add","list","remove","accept","reject" Miałem nie dodawać tab completera, ale tak sobie patrzę na tę odpowiedź i w sumie co mi szkodzi ¯\_(ツ)_/¯ Jak wrzucę nową wersję to już z tab completerem. Cytuj Odnośnik do komentarza https://skript.pl/temat/58833-skrypt-na-friends/#findComment-347034 Udostępnij na innych stronach Więcej opcji udostępniania...
tylkopodskrypty 2 Opublikowano 19 sierpnia 2025 Udostępnij Opublikowano 19 sierpnia 2025 21 godzin temu, wikt0r3k napisał: Miałem nie dodawać tab completera, ale tak sobie patrzę na tę odpowiedź i w sumie co mi szkodzi ¯\_(ツ)_/¯ Jak wrzucę nową wersję to już z tab completerem. jeśli nie będzie działało to pobierz jeszcze SkBee Cytuj Odnośnik do komentarza https://skript.pl/temat/58833-skrypt-na-friends/#findComment-347036 Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 19 sierpnia 2025 Udostępnij Opublikowano 19 sierpnia 2025 W dniu 18.08.2025 o 12:45, wikt0r3k napisał: [1] Jest to jakieś rozwiązanie problemu, który jak sam zresztą wspomniałeś - jest mało prawdopodobne, że się wydarzy, lecz dalej nie rozumiem sensu wyrzucenia "skrótowej" wersji tej komendy, skoro obie formy działają. Po prostu dla tych 5 nicków niestety trzeba pisać te dłuższą wersję. [2] Poczytałem, popróbowałem i finalnie postawiłem na tą drugą opcję. Możliwe, że na dniach wrzucę już wersję z tą poprawą. [3] Akurat za ten punkt to dziękuję z całego serca, przydał się przy okazji w innych skryptach [4] Z tego co mi się wydaje, nie jest to możliwe przez to jak działa łączenie na serwer (Nawiązywanie nowego połączenia, ładowanie pozycji gracza itp.) Ad 1. Dobrze, ale zauważ, że znasz rozwiązanie tylko dlatego, bo wiesz jak wygląda kod definiujący komendę. Zwykły gracz nie będzie tego wiedział. Bądź co bądź, zgodziliśmy się, że prawdopodobieństwo dołączenia graczy o tych nazwach jest skrajnie małe, więc możesz to zignorować. Ad 4. Też mam takie przeczucie, niemniej jednak w przypadku takich stwierdzeń należy być ostrożnym, bo w rachubę wchodzi tu wiele zmiennych, między innymi: specyfikacja maszyny serwera, obciążenie, silnik, zainstalowane wtyczki, itd. Dobra praktyka nakazywałaby obsługę wszystkich, nawet najmniej prawdopodobnych scenariuszy, ale na mniejszym serwerze sądzę, że nigdy do tego nie dojdzie. Odpowiadając na ogół wiadomości, cieszę się, że moje wskazówki okazały się pomocne. Pozdrawiam. Cytuj Odnośnik do komentarza https://skript.pl/temat/58833-skrypt-na-friends/#findComment-347037 Udostępnij na innych stronach Więcej opcji udostępniania...
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ą.