php sleep() podczas walki
Forum MMO - Tworzenie gier via www i MMO
Pokaż wyniki od 1 do 10 z 10

Wątek: php sleep() podczas walki

  1. Zarejestrowany
    Dołączył: Dec 2013
    Posty: 14
    Pobieralnia
    0
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 0/0
    Dane: 17/1
    Siła reputacji: 0

    php sleep() podczas walki

    #1
    Witam. Użyłem funkcji sleep() podczas walki. Jednakże nie przyniosło to pożądanego efektu. Ponieważ gdy dodam ją w pętli to wynik pojawia mi się na ekranie po tym jak wykonają się wszystkie pętle. Mi natomiast zależy na takim efekcie aby wyniki pojawiały się stopniowo na ekranie po sec. Dodatkowo nie wiem czy jeżeli funkcja sleep wykonuje się na serverze, to czy nie obciąża ona zbytnio server(chciałbym dodać ją do każdej czynności by boty nie zrobiły 100 w kilka sec).

    0 Nie wolno! Nie wolno!

  2. Zarejestrowany
    Dołączył: Jul 2008
    Posty: 799
    Pobieralnia
    1
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 19/0
    Dane: 81/16
    Siła reputacji: 91

    Odp: php sleep() podczas walki

    #2
    Podejrzewam, że używasz html+css do wyświetlania strony.. W takim razie to możesz zrobić ~~jedynie javascriptem.

    sleep używa się w długo trwających skryptach, które nie dają bezpośrednio wyniku. W dużym skrócie:
    Autor gry otwiera sobie stronę, w której jest jedno zapytanie do bazy danych, które dodaje energię graczom co godzinę. Kod może wyglądać w ten sposób:

    Kod php:

    while(true) {
    dodajEnergieGraczom();
    sleep(3600); //nie pamiętam w czym to jest, jeden pies.

    Czyli dopóki ma to otwarte w przeglądarce to co godzinę będzie wykonywana funkcja w tej pętli.

    0 Nie wolno! Nie wolno!
    Nie można żyć samym życiem.

  3. Zarejestrowany
    Dołączył: Jan 2008
    Posty: 364
    Pobieralnia
    1
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 3/1
    Dane: 1/1
    Siła reputacji: 48

    Odp: php sleep() podczas walki

    #3
    Funkcja sleep nie obciąży serwera bo ona nie wykonuje zasobożernych obliczeń tylko sprawdza czas i blokuje skrypt. A każdy JS da się ominąć, bo bot wyłączy skrypty albo zdeklaruje swoje zmienne, funkcje

    0 Nie wolno! Nie wolno!

  4. Zarejestrowany
    Dołączył: Jul 2008
    Posty: 799
    Pobieralnia
    1
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 19/0
    Dane: 81/16
    Siła reputacji: 91

    Odp: php sleep() podczas walki

    #4
    Eh, jeżeli chcesz ograniczyć liczbę akcji to najprościej jest zapamiętać czas ostatniej akcji w milisekundach w sesji i sprawdzać ile minęło między kolejnymi wejściami na stronę.

    Kod php:
    if($_SESSION['visited'] - microtime(true) < 100)
    die();
    $_SESSION['visited'] = microtime(true); 

    0 Nie wolno! Nie wolno!
    Nie można żyć samym życiem.

  5. Zarejestrowany
    Dołączył: Jan 2008
    Posty: 364
    Pobieralnia
    1
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 3/1
    Dane: 1/1
    Siła reputacji: 48

    Odp: php sleep() podczas walki

    #5
    Dokładnie, bo podczas używania sleep można przekroczyć czas ładowania strony i przeglądarka wyświetli błędy timeout

    0 Nie wolno! Nie wolno!

  6. Zarejestrowany
    Dołączył: Dec 2013
    Posty: 14
    Pobieralnia
    0
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 0/0
    Dane: 17/1
    Siła reputacji: 0

    Odp: php sleep() podczas walki

    #6
    Na razie nie chodzi mi o jakieś duże czasy blokujące akcje, tylko chce by bot nie zrobił czegoś co człowiek robi w 2 dni w 2 min. Więc np. przy próbie logowania daje 1s dodatkowego czkania, a także przy walce.

    0 Nie wolno! Nie wolno!

  7. Zarejestrowany
    Dołączył: Jul 2008
    Posty: 799
    Pobieralnia
    1
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 19/0
    Dane: 81/16
    Siła reputacji: 91

    Odp: php sleep() podczas walki

    #7
    To ja powtórzę jeszcze raz, że to bez sensu. Zawsze można sobie otworzyć 1000 kart.

    0 Nie wolno! Nie wolno!
    Nie można żyć samym życiem.

  8. Zarejestrowany
    Dołączył: Jan 2009
    Posty: 624
    Pobieralnia
    5
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 6/2
    Dane: 1/0
    Siła reputacji: 73

    Odp: php sleep() podczas walki

    #8
    Użycie sleep() to żadna blokada czasowa, a raczej opóźnienie.
    Tak jak napisał drikam, można otworzyć te przykładowe tysiąc kart w przeglądarce naraz i tyle po twoim blokowaniu.
    Najlepszym sposobem jaki mi przychodzi do głowy to ten właśnie z zapisywaniem i sprawdzaniem czasu, który podał Ci wcześniej drikam.
    Bo twój sposób tylko opóźni to co nieuniknione o tę jedną, małą, sekundę.

    0 Nie wolno! Nie wolno!

  9. Zarejestrowany
    Dołączył: Oct 2012
    Posty: 135
    Pobieralnia
    0
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 23/0
    Dane: 2/0
    Siła reputacji: 20

    Odp: php sleep() podczas walki

    #9
    Powinniście tutaj napisać koledze że php wykonuje się po stronie serwera a nie klienta więc nawet jakby nie wiem jak sie namęczył to po uruchomieniu skrytpu w przeglądarce dostanie wynik operacji w skrypcie a nie podglad na żywca tego co skrypt mieli. Serwer odsyła do klienta po wykonaniu skryptu wygenerowany kod HTML. Taka drobna uwaga.

    0 Nie wolno! Nie wolno!

  10. Zarejestrowany
    Dołączył: Dec 2013
    Posty: 14
    Pobieralnia
    0
    Dodane pliki
    0
    Thumbs Up/W dół
    Otrzymane: 0/0
    Dane: 17/1
    Siła reputacji: 0

    Odp: php sleep() podczas walki

    #10
    Po której stronie wykonuje się skrypt to wiem, ale faktycznie nie przyszło mi do głowy ze można otworzyć kilka kart.

    0 Nie wolno! Nie wolno!

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Odpowiedzi: 0
    Ostatni post / autor: 07-02-2011, 21:31

Osoby które odwiedziły tą stronę znalazły ją szukając:

Tagi dla tego wątku

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  

Partnerzy

ViaWWWGamers - portal od graczy dla graczy Yggdrasil – portal o grach

Toplisty

TOP50 Gry Internetowe RPG - gry MMO i MMORPG online Gry w przeglądarce Top Granie
facebook
G