Skocz do zawartości
  • 0

Jak zaprogramować strefę afk?


Pytanie

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

  • 0
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.

Odnośnik do komentarza
https://skript.pl/temat/57506-jak-zaprogramowa%C4%87-stref%C4%99-afk/#findComment-342428
Udostępnij na innych stronach

  • 0
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. 

Odnośnik do komentarza
https://skript.pl/temat/57506-jak-zaprogramowa%C4%87-stref%C4%99-afk/#findComment-342429
Udostępnij na innych stronach

  • 0
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 przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/57506-jak-zaprogramowa%C4%87-stref%C4%99-afk/#findComment-342430
Udostępnij na innych stronach

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ą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...