![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich!
Potrzebuję pomocy, ponieważ mam mały (tzn. duży) (IMG:style_emoticons/default/biggrin.gif) 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 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#3
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
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 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
@Damonsson - zamykam przeglądarkę i Twój sposób się zawalił ;)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
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 (IMG:style_emoticons/default/wink.gif) 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. Ten post edytował Damonsson 28.12.2013, 14:11:50 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ż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. Ten post edytował Damonsson 28.12.2013, 14:20:41 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
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 ...
Ten post edytował com 28.12.2013, 15:18:02 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
albo - takie magiczne słówko (IMG:style_emoticons/default/wink.gif)
Zgodzę się, nie jest idealne, ani to, ani to. Czy są takie, Sockety? Chętnie się dowiem, sam nie wiem. Ten post edytował Damonsson 28.12.2013, 15:22:45 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
ok masz rację źle to przeczytałem (IMG:style_emoticons/default/wink.gif)
Cytat Czy są takie, Sockety? Chętnie się dowiem, sam nie wiem. hmm? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 01:27 |