luk4sMC 10 Opublikowano 10 stycznia 2021 Udostępnij Opublikowano 10 stycznia 2021 Witam. Zauważyłem, że z jakiegoś powodu moje skrypt zaczęły zachowywać się nielogicznie. Przykładowo: wiadomość o pobraniu z portfela pieniędzy wyświetla się, pieniądze ubywają więc arytmetyka działa i ma się dobrze, ale give, pomimo, że jest wyżej w kodzie, nic nie daje!! Inny przypadek: po wejściu na region pvp -itemy gracza nie są zapisywane/przechowywane. Dopiero po przeładowaniu zaczyna działać. I teraz zaczynam się zastanawiać czy to wina zmian wprowadzanych w WG przez dodanie flag, czy moc obliczeniowa nie wyrabia lub wielokrotne zmiany w kodzie zrobiły w Skript bałagan. Więc pierwsze co mi wpadło do głowy, to: priorytety w skryptach. jeżeli skript tego nie obsługuje, to email do twórcy. stworzenie demona, który na podstawie: wysokiego użycie procesora, ilości ramu lub ilość graczy wyłączałby skrypty o niższym priorytecie (priorytety w nazwach np. 1-portfel.sk, 3-masz_wiadomosc) lub opóźniał wykonywanie pętli w tych skryptach dla graczy język bash, python lub inne dla serwera VPS, plugin w java czy sam skript chociaż jego wydajność zapewne jest wątpliwa, więc... Próbował dziś podstawić wartości zmiennych do wszystkich pętli i wait, ale widzę, że się nie da. Najprostsze rozwiązanie tj. dożo graczy, więc wait {time}, every {time} itd... Połowiczne rozwiązanie mam tu czyli dużo graczy: skrypt można by wyłączyć lub włączyć jego kopie, która działa kilka razy dziennie. While Loops While loops look much closer to that diagram I posted above. While other kinds of loops go through a specified amount of objects before running out, a while loop could potentially run on forever. Just like other loops, the will keep iterating until the condition is false. while {var} is true: strike lightning at player chance of 10%: set {var} to false In this case the loop will keep running and striking the player with lightning with only a 10% chance of stopping each time. Any condition you can use with an if statement, you can use for a while loop. Hopefully this clears up some of the confusion around loops in Skript. You can post in the help forum, or send me a PM if you have any questions, or need some more explanation about loops. -Demon Pytanie czy ma to sens, czy ktoś się spotkał z tym co opisuje i optymalizował swoje skrypty w jakikolwiek sposób... Odnośnik do komentarza https://skript.pl/temat/44466-demonizowanie-wszystkich-skrypt%C3%B3w/ Udostępnij na innych stronach Więcej opcji udostępniania...
Kormic 1951 Opublikowano 10 stycznia 2021 Udostępnij Opublikowano 10 stycznia 2021 (edytowane) 37 minut temu, luk4sMC napisał: Pytanie czy ma to sens, czy ktoś się spotkał z tym co opisuje i optymalizował swoje skrypty w jakikolwiek sposób... Zapętlanie kodu, aby wszystko w nim się wykonało, jest bezsensowne i jest ułomną próbą zapobiegania problemowi. Upewnij się, że: posiadasz stabilną (najlepiej najnowszą) wersję Skripta nie posiadasz do niego żadnych dziwnych dodatków na twoim serwerze nie ma kolidujących ze sobą skryptów 37 minut temu, luk4sMC napisał: Zauważyłem, że z jakiegoś powodu moje skrypt zaczęły zachowywać się nielogicznie. Przykładowo: wiadomość o pobraniu z portfela pieniędzy wyświetla się, pieniądze ubywają więc arytmetyka działa i ma się dobrze, ale give, pomimo, że jest wyżej w kodzie, nic nie daje!! Inny przypadek: po wejściu na region pvp -itemy gracza nie są zapisywane/przechowywane. Dopiero po przeładowaniu zaczyna działać. I teraz zaczynam się zastanawiać czy to wina zmian wprowadzanych w WG przez dodanie flag, czy moc obliczeniowa nie wyrabia lub wielokrotne zmiany w kodzie zrobiły w Skript bałagan. To z pewnością nie jest prawidłowe zachowanie Skripta. Upewnij się co do powyższych rzeczy. 37 minut temu, luk4sMC napisał: priorytety w skryptach. jeżeli skript tego nie obsługuje, to email do twórcy. Mógłbyś doprecyzować? Jedyne priorytety jakie wspiera Bukkit API to EventPriority definiowany przy nasłuchiwaniu do eventów. Szczerze nie rozumiem dlaczego bensku miałby wprowadzać coś takiego jak priorytety. To w twoim interesie leży, aby albo nie tworzyć serwera na samych skryptach, albo nie tworzyć z nich potworów na tysiące linijek. Dopóki to nie jest problem ze samym Skriptem, dopóty nikt nie będzie tego łatał. 37 minut temu, luk4sMC napisał: stworzenie demona, który na podstawie: wysokiego użycie procesora, ilości ramu lub ilość graczy wyłączałby skrypty o niższym priorytecie (priorytety w nazwach np. 1-portfel.sk, 3-masz_wiadomosc) lub opóźniał wykonywanie pętli w tych skryptach dla graczy Nie widzę sensu robienia tego, ale możesz to nawet samemu zrobić. Przykładowo możesz pobierać wartość TPS i jeżeli jest niższy niż 18, bierzesz listę 'enabled scripts' i zapętlasz ją, po czym według już własnych kryteriów wyłączasz dany skrypt. Edytowane 10 stycznia 2021 przez Kormic Odnośnik do komentarza https://skript.pl/temat/44466-demonizowanie-wszystkich-skrypt%C3%B3w/#findComment-278901 Udostępnij na innych stronach Więcej opcji udostępniania...
luk4sMC 10 Opublikowano 10 stycznia 2021 Autor Udostępnij Opublikowano 10 stycznia 2021 (edytowane) Cytat Zapętlanie kodu, aby wszystko w nim się wykonało, jest bezsensowne i jest ułomną próbą zapobiegania problemowi. Upewnij się, że: Nie chodzi mi o zapętlenie kodu a przykładowo o to, że przy dużym obciążeniu serwera, skrypty takie jak "masz wiadomość" nie będą wyświetlały 15 graczom co 60 sek, że jakąś wiadomość mają, a będzie to co 1 godzinę. Wiadomość wyświetla się (spami czat) co 60 sek. celowo, żeby gracz tą wiadomość odebrał i usunął, a nie zawracał gitarę administracji. Wiadomość co 10 min., że do twojego portfela wpadły 3$ też celowo, żeby zachęcić gracza do pozostania na serwerze i zarabiania na jakąś rangę, permisje. Cytat Szczerze nie rozumiem dlaczego bensku miałby wprowadzać coś takiego jak priorytety. To w twoim interesie leży, aby albo nie tworzyć serwera na samych skryptach, albo nie tworzyć z nich potworów na tysiące linijek. Dopóki to nie jest problem ze samym Skriptem, dopóty nikt nie będzie tego łatał. To od pierwszego twórcy Skrip jeżeli dobrze rozumiem. Cytat Hopefully this clears up some of the confusion around loops in Skript. You can post in the help forum, or send me a PM if you have any questions, or need some more explanation about loops. Cytat Szczerze nie rozumiem dlaczego bensku miałby wprowadzać coś takiego jak priorytety. To w twoim interesie leży, aby albo nie tworzyć serwera na samych skryptach, albo nie tworzyć z nich potworów na tysiące linijek. Dopóki to nie jest problem ze samym Skriptem, dopóty nikt nie będzie tego łatał. Tak, to dla mnie nie problem Napisanie pętli nieskończonej dla serwera VPS, która dla każdego skryptu, który zaczynałby się od niskiego priorytetu czyli np. 03-wiadomosc.sk... CPU=50 CPU=100 while true do if [ CPU > 50 ]; then for file in 03-*.sk #kazdy skrypt z priorytetem low ma na początku pliku wartość 03- do #zmien nazwe z 03-masz_wiadomosc.sk na -03-masz_wiadomosc.sk mv "&file" "-$file" done fi sleep 5 done Tylko, że to twórcy a nie Ciebie należałoby zapytać. Nie uważasz? A że wielu osób tutaj dzieli się swoimi skryptami i pyta co zmienić, poprawić, to stwierdzam, że nie obraziłby się gdyby ktoś podrzucił mu gotowy kod i zapytał czy ma to sens!!! Edytowane 10 stycznia 2021 przez luk4sMC Odnośnik do komentarza https://skript.pl/temat/44466-demonizowanie-wszystkich-skrypt%C3%B3w/#findComment-278902 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi