viktonicK 0 Opublikowano 14 maja 2024 Udostępnij Opublikowano 14 maja 2024 SKRYPT ZNAJDZIESZ TUTAJ: JESTEM JESZCZE NOWY W PISANIU SKRYPTÓW WIĘC JAK ZNAJDZIESZ JAKIŚ BŁĄD TO PRZEPRASZAM Z TEGO CO TESTOWAŁEM TO MI SKRYPT DZIAŁA! Cytuj Odnośnik do komentarza https://skript.pl/temat/57509-skrypt-na-ustawienia-na-boxpvp/ Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 14 maja 2024 Udostępnij Opublikowano 14 maja 2024 1 godzinę temu, viktonicK napisał: JESTEM JESZCZE NOWY W PISANIU SKRYPTÓW WIĘC JAK ZNAJDZIESZ JAKIŚ BŁĄD TO PRZEPRASZAM Z TEGO CO TESTOWAŁEM TO MI SKRYPT DZIAŁA! Nie ma za co Pan przepraszać, ponieważ skrypt wygląda całkiem dobrze. Niemniej jednak mam dwie uwagi dotyczące optymalizacji skryptu. Zapętlanie wszystkich graczy w jednej chwili czasu co sekundę nie jest dobrym rozwiązaniem. Dlaczego? Proszę zwrócić uwagę na to, że Pan wykonuje dla wszystkich graczy operację w jednym konkretnym momencie, co może być powodem większego obciążenia na serwerze. Zamiast tego powinien Pan rozłożyć je równomiernie w czasie. Jak tego dokonać? Niech Pan przy każdorazowym dołączeniu gracza na serwer (listener zdarzenia 'on join') rozpoczyna pętlę 'while' z warunkiem 'player is online'. W jej środku może Pan dodać wysyłanie wiadomości na action bar i opóźnienie. Nie ma potrzeby wysyłania wiadomości na action bar co sekundę, gdyż wyświetla się ona przez co najmniej 2 sekundy (dokładnego czasu nie znam). Niech więc Pan zmieni opóźnienie na dwie sekundy - dzięki temu kod będzie się wykonywał 2 razy rzadziej. Pozdrawiam. Cytuj Odnośnik do komentarza https://skript.pl/temat/57509-skrypt-na-ustawienia-na-boxpvp/#findComment-342438 Udostępnij na innych stronach Więcej opcji udostępniania...
Fendi 190 Opublikowano 14 maja 2024 Udostępnij Opublikowano 14 maja 2024 10 minut temu, Kormic napisał: Zapętlanie wszystkich graczy w jednej chwili czasu co sekundę nie jest dobrym rozwiązaniem. Dlaczego? Proszę zwrócić uwagę na to, że Pan wykonuje dla wszystkich graczy operację w jednym konkretnym momencie, co może być powodem większego obciążenia na serwerze. Zamiast tego powinien Pan rozłożyć je równomiernie w czasie. Jak tego dokonać? Niech Pan przy każdorazowym dołączeniu gracza na serwer (listener zdarzenia 'on join') rozpoczyna pętlę 'while' z warunkiem 'player is online'. W jej środku może Pan dodać wysyłanie wiadomości na action bar i opóźnienie. Jest Pan pewien? https://discord.com/channels/140566826051436555/328559203566354442/1206344626848407628 Przypisanie każdemu graczowi taska z while vs pełny loop co sekunde. Dodatkowo też jeżeli gracz 1 wejdzie podczas 17 ticka a 2 gracz wejdzie podczas 10 ticka to dla nich te wait 2 seconds bedzie i tak o innej porze. Co już świadczy o tym, że będą to 2 oddzielne zadania. Cytuj Odnośnik do komentarza https://skript.pl/temat/57509-skrypt-na-ustawienia-na-boxpvp/#findComment-342439 Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 14 maja 2024 Udostępnij Opublikowano 14 maja 2024 1 godzinę temu, Fendi napisał: Jest Pan pewien? https://discord.com/channels/140566826051436555/328559203566354442/1206344626848407628 Przypisanie każdemu graczowi taska z while vs pełny loop co sekunde. Dodatkowo też jeżeli gracz 1 wejdzie podczas 17 ticka a 2 gracz wejdzie podczas 10 ticka to dla nich te wait 2 seconds bedzie i tak o innej porze. Co już świadczy o tym, że będą to 2 oddzielne zadania. Przeczytałem, że są tam w pętli jakieś warunki sprawdzające każdego zapętlanego gracza. Przepraszam za niedopatrzenie z mojej strony. W takim wypadku różnica jest, ale na niekorzyść pętli while (a więc na korzyść periodicalu). Oczywiście wydajniejszym rozwiązaniem jest 1 zadanie obsługujące x graczy niż x zadań obsługujących indywidualnie każdego gracza. Zapomniałem również dopisać, że w mojej ocenie najlepsze będzie zapisywanie graczy spełniających warunek do listy zmiennych, którą później zapętlamy wewnątrz periodicalu 'every x'. Wtedy unikamy sprawdzania wartości zmiennej dla wszystkich graczy. 2 godziny temu, Fendi napisał: Dodatkowo też jeżeli gracz 1 wejdzie podczas 17 ticka a 2 gracz wejdzie podczas 10 ticka to dla nich te wait 2 seconds bedzie i tak o innej porze. Co już świadczy o tym, że będą to 2 oddzielne zadania. Dlatego właśnie zaproponowałem to w przypadku sprawdzania wielu warunków, co pozwala na równomierny rozkład obciążenia serwera (przy założeniu, że czasy dołączania graczy można opisać rozkładem prostokątnym) i zakończenie pętli w przypadku gdy przynajmniej jeden z warunków jest niespełniony. Cytuj Odnośnik do komentarza https://skript.pl/temat/57509-skrypt-na-ustawienia-na-boxpvp/#findComment-342443 Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Usunięty#12473 Opublikowano 14 maja 2024 Udostępnij Opublikowano 14 maja 2024 Ten temat został przeniesiony. Cytuj Odnośnik do komentarza https://skript.pl/temat/57509-skrypt-na-ustawienia-na-boxpvp/#findComment-342449 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ą.