micmit123 0 Opublikowano 13 maja 2024 Udostępnij Opublikowano 13 maja 2024 Jak zaprogramować komendę /afk, która przenosi w obszar afk, w którym dostaje się co określony czas klucz z excellent crates (/crate key give %player% [klucz]) oraz pieniądze z ekonomii essentials vault? (/eco give %player% [ilosc]) Cytuj Odnośnik do komentarza https://skript.pl/temat/57506-jak-zaprogramowa%C4%87-stref%C4%99-afk/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 13 maja 2024 Udostępnij Opublikowano 13 maja 2024 20 minut temu, micmit123 napisał: Jak zaprogramować komendę /afk, która przenosi w obszar afk, w którym dostaje się co określony czas klucz z excellent crates (/crate key give %player% [klucz]) oraz pieniądze z ekonomii essentials vault? (/eco give %player% [ilosc]) Można ten mechanizm zaimplementować za pomocą pętli while z warunkiem 'player is online'. W środku pętli doda Pan jakieś opóźnienie, ale nie co kilka minut (w zależności od tego co ile minut, a może i godzin chce Pan dawać klucze), bo jest szansa, że gracz będzie wracał. Powinien Pan więc odtwarzać tę pętlę co kilka sekund i jeśli gracz nie jest online, wychodzi Pan z niej (instrukcja 'exit loop'). Oczywiście samo dawanie kluczy to sprawa myślę, że trywialna - nie potrzebuje tutaj Pan mojej porady. Nie wykluczam, że moje rozwiązanie jest wadliwe. To jest rozwiązanie, które jako pierwsze przyszło mi do głowy. W razie pytań proszę się nie krępować, służę pomocą. Pozdrawiam. Cytuj Odnośnik do komentarza https://skript.pl/temat/57506-jak-zaprogramowa%C4%87-stref%C4%99-afk/#findComment-342428 Udostępnij na innych stronach Więcej opcji udostępniania...
0 micmit123 0 Opublikowano 13 maja 2024 Autor Udostępnij Opublikowano 13 maja 2024 Teraz, Kormic napisał: Można ten mechanizm zaimplementować za pomocą pętli while z warunkiem 'player is online'. W środku pętli doda Pan jakieś opóźnienie, ale nie co kilka minut (w zależności od tego co ile minut, a może i godzin chce Pan dawać klucze), bo jest szansa, że gracz będzie wracał. Powinien Pan więc odtwarzać tę pętlę co kilka sekund i jeśli gracz nie jest online, wychodzi Pan z niej (instrukcja 'exit loop'). Oczywiście samo dawanie kluczy to sprawa myślę, że trywialna - nie potrzebuje tutaj Pan mojej porady. Nie wykluczam, że moje rozwiązanie jest wadliwe. To jest rozwiązanie, które jako pierwsze przyszło mi do głowy. W razie pytań proszę się nie krępować, służę pomocą. Pozdrawiam. Dziękuje za odpowiedź, natomiast czy dało by się zrobić coś w stylu, że skrypt działa inaczej niż sprawdzając co kilka sekund? Pytam się o to, ponieważ inny sposób mógłby zmniejszyć obciążenie serwera. Cytuj Odnośnik do komentarza https://skript.pl/temat/57506-jak-zaprogramowa%C4%87-stref%C4%99-afk/#findComment-342429 Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 13 maja 2024 Udostępnij Opublikowano 13 maja 2024 (edytowane) 8 minut temu, micmit123 napisał: Dziękuje za odpowiedź, natomiast czy dało by się zrobić coś w stylu, że skrypt działa inaczej niż sprawdzając co kilka sekund? Pytam się o to, ponieważ inny sposób mógłby zmniejszyć obciążenie serwera. Inne rozwiązanie to zapętlanie graczy w regionie obejmującym obszar AFK co jakiś czas. Wtedy Pan nie musi się przejmować zatrzymywaniem pętli gdy gracz jest offline. Jedyna i myślę, że duża wada tego rozwiązania jest taka, że wszyscy gracze będą otrzymywali klucze w tym samym momencie. Tak więc z pewnością będzie się Pan borykał z nadużyciami tej wady. Przykład: Jeden z graczy wie co ile i kiedy rozdawane są klucze, więc wchodzi do strefy AFK tuż przed momentem rozdania kluczy i zaraz po tym szybko z niej wychodzi. W ten sposób może normalnie grać i jednocześnie otrzymywać darmowe klucze. Jeśli Pan nie spodziewa się kilkuset graczy w strefie AFK, zwykły warunek sprawdzający co kilka sekund czy gracz jest na serwerze nie powinien być obciążający. Aha, jeszcze jedno. Jeśli Pan chce, może Pan stworzyć licznik. Na przykład będzie Pan wykonywał pętlę 'while' co 5 sekund, a chce Pan rozdawać klucze co 15 minut w strefie AFK. 15 minut to 900 sekund, a 900/5 = 180. Tak więc mógłby Pan przy każdej iteracji pętli zwiększać wartość licznika o 1 aż do 180, a gdy będzie ona równa 180, wręcza Pan graczowi klucz i zeruje licznik (ustawia na 0). Edytowane 13 maja 2024 przez Kormic Cytuj Odnośnik do komentarza https://skript.pl/temat/57506-jak-zaprogramowa%C4%87-stref%C4%99-afk/#findComment-342430 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
micmit123 0
Jak zaprogramować komendę /afk, która przenosi w obszar afk, w którym dostaje się co określony czas klucz z excellent crates (/crate key give %player% [klucz]) oraz pieniądze z ekonomii essentials vault? (/eco give %player% [ilosc])
Odnośnik do komentarza
https://skript.pl/temat/57506-jak-zaprogramowa%C4%87-stref%C4%99-afk/Udostępnij na innych stronach
3 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ą.