michal041202
28.12.2013, 13:45:11
Witam wszystkich!
Potrzebuję pomocy, ponieważ mam mały (tzn. duży)

problem. Otóż chcę zrobic coś takiego, że w bazie danych (MySQL) jest zapisany pewna liczba i po kliknięciu na przycisk ma rozpocząc się odliczanie i po skończeniu się zadanego czasu aby ta liczba zwiększyła się o jeden. Chciałbym także, aby w tym czasie przeglądarka nie musiała byc włączona i to odliczanie odbywało się jakby po stronie serwera. Proszę o szybką pomoc.
--
Pozdrawiam
michal041202
Wysyłasz dane przez formularz do bazy/pliku, ustawiasz cron na serwerze aby sprawdzał czy rekord/wartość pliku istnieje np. co kilka minut, jeśli istnieje pobierasz czas rozpoczęcia i na jego podstawie przez cron sprawdzasz czy od tego momentu upłynęło tyle ile potrzebujesz, jak tak robisz update.
Kshyhoo
28.12.2013, 14:00:36
Codziennie zakładasz wątek. Nie umiesz nic, zacznij od kursy PHP/MySQL. Użyj Google do znalezienia tematu a PROBLEMAMI z KODEM wracaj na Forum.
gra+via+budowanie
Damonsson
28.12.2013, 14:01:11
Niepotrzebny Ci żaden Cron.
Źródło: Otwarcie podstrony na której, można zobaczyć poziom.
Akcja:
- Pobranie z MySQL czasu do końca budowy
- Zasymulowanie i wyświetlenie w JavaScript odliczania czasu do końca budowy
- Po dojściu licznika czasu w JS do 0, odpytanie bazy danych, czy rzeczywiście czas dobiegł końca (nigdy nie ufaj danym od użytkownika tj. JavaScript).
- Jeśli czas dobiegł końca, update kolumny w MySQL
Źródło: Kliknięcie budowy nowego poziomu
Akcja:
- Dodanie czasu zakończenia budowy do MySQL
@Damonsson - zamykam przeglądarkę i Twój sposób się zawalił ;)
Damonsson
28.12.2013, 14:09:13
Otwieram przeglądarkę i mój sposób nadal żyje.
Po co słoniowi w afryce wiedzieć, czy na mazurach jest woda w jeziorze? Jak przybiegnie do Polski to refresh horyzontu przed jego pokazaniem, pokaże mu czy jest to jezioro czy go nie ma

Ale dobrze, że to napisałeś, bo prawda, zapomniałem dodać czegoś ważnego:
Nie: Otwarcie podstrony na której, można zobaczyć poziom. A:
Jakakolwiek akcja, na którą ma wpływ poziom budynku.
Właśnie, musisz otworzyć przeglądarkę ponownie, aby to sprawdzić, czyli jeszcze raz odpytujesz bazę. Przy grach się to nie sprawdza, ponieważ warto wykonywać zadania wtedy kiedy są potrzebne, a nie masowo sprawdzać wszytko przy logowaniu. Dodatkowo wyłączę JS i pomysł leży, zbuduję pomiędzy logowaniem a odpytaniem serwera 1k budynków i pomysł leży.
Damonsson
28.12.2013, 14:18:01
Żeby zrobić to realnie, CRON musiałby działać co 1 sekundę. Wyobrażasz sobie to przy 100.000 użytkowników? OGAME, działa wg mojej wersji, nie znam większej gry tego typu.
CRON w grach sprawdza się gdy, trzeba wykonać bardzo zasobożerne operacje. Np liczenie punktów, miliony operacji arytmetycznych dla wszystkich użytkowników. Wtedy odpala się CRONa np. o 4 w nocy jak wszyscy śpią i mieli się bazę danych.
To już jest inna historia. Cron odpalany co 1s przy 100k? To jeszcze nie jest tak źle. Dziś i tak robi się tego typu rzeczy przez sockety, co też jest wyjściem.
Damonsson
28.12.2013, 14:36:30
CRON ze sprawdzaniem praktycznie wszystkie co możliwe, dziesiątki operacji dla jednego gracze: ataki/budynki/surowce. To jest zabójstwo. Po za tym zawsze jest ryzyko, niewykonania się CRONa. Nie ma najmniejszej możliwości stosowania CRONa do takich zadań. Dla zabawy dla 1000 graczy to jeszcze może jakoś przejdzie. Albo jak punkty się nie policzą, to ktoś odpali CRONa jeszcze raz i będzie później aktualizacja tylko, nic wielkiego się nie stanie. A niech CRON dla tych ważnych operacji zawiesi się na 3 sekundy w ciągu 24h, gdzie jakieś ataki są wyliczane co do 1 sekundy, to co? Backup?
Tak samo było z tymi aukcjami za10groszy.pl itp.
No tak Sockety, albo obsługa zdarzeń w innym języku. Ale to już chyba nie na możliwości autora.
Sockety w php też masz, a Ogame to trochę już historia, wiec nie bazowałbym na tym bo wtedy nie mieli zbyt dużego pola do popisu, a oba sposoby tzn cron i js nie są tu idealne ...
Damonsson
28.12.2013, 15:20:27
albo - takie magiczne słówko

Zgodzę się, nie jest idealne, ani to, ani to. Czy są takie, Sockety? Chętnie się dowiem, sam nie wiem.
ok masz rację źle to przeczytałem

Cytat
Czy są takie, Sockety? Chętnie się dowiem, sam nie wiem.
hmm?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.