ďťż

[php i sql] czasy serwera jak porównywać??

       

Podstrony


telcocafe

Robię grę ONLINE. W bazie zapisuje ostatnią datę przyznania surowca. Co 5 minut do gracza ma zostać dodane np 5 drewna. Jak zapisać datę na mysql a potem sprawdzić jaka jest teraz data i ile pięciu minut minęło od starej daty??



Masz w ogóle obsługę CRON-a na cba.pl? Bo nie wyjdzie Ci ta gra bez tego. No i to będzie pewnie coś dla góra dwudziestu osób, bo niczego większego na takim serwerku nie postawisz.
A porównywanie daty jest przecież proste. Z czym masz problem? Nie potrafisz odjąć teraz od przeszłości? Wychodzi Ci różnica i widzisz ile czasu minęło od przeszłości do teraz.

Tak nie potrafię odjąć teraz od przeszłości.

Czy to może jest funkcja DATE_SUB(NOW() , $przeszłosc , MINUTE)

A co to CRON??

A dlaczego tylko 20 osób na cba??

Masz rację nie ma crona/:
Użytkownik kar edytował ten post 07 kwiecień 2010, 17:30
Czemu w SQL? Wystarczy stworzyć uniksowy znacznik czasu (funkcje time() i date() w PHP). Bez problemu będziesz mógł dodawać, odejmować od siebie czas (podany w sekundach w znaczniku czasu).
Bez CRON-a gra będzie bez sensu. Użytkownik, gdy zamknie przeglądarkę, nie będzie, np., otrzymywał co 5 minut drewna.
Serwer(y?) cba jest używany przez dużą liczbę osób, więc i jego prędkość nie jest imponująca, przez co nie będziesz miał wielu graczy on-line, a w dodatku te reklamy...




Czemu w SQL?
Bo szybciej działa ;)
Robi się to tak np. TIMEDIFF(kolumna_z_czasem,NOW()) > "0:05". (Albo odwrotnie czas i NOW - nigdy nie pamiętam).

Przede wszystkim cba polegnie na limicie połączeń do bazy - gra online ostatecznie wymaga ich dość sporo, a wątpię, żeby limit był większy niż 20, więc 50 graczy i kaput.

1. Po co mi cron jeżeli mam taki sposób jak zapisanie starej daty i później ile 5 minut minęło więc daje i tyle razy więcej surowca...

Zatem nie będzie żadnych rankingów?

http://dev.mysql.com...nction_datediff

A dlaczego miało by nie być??

Dzięki za stronkę z TIMEDIFF();

Dlaczego miałoby nie być? Hm. Powiedzmy, że robisz ranking w ten sposób, iż co godzinę użytkownik dostaje punkt. Aby te punkty były zliczane musisz mieć CRON lub, wg Twojej koncepcji, użytkownik musi zalogować się na swoje konto. Na dzień użytkownik zarabia 24 punkty, na miesiąc ~720. Powiedzmy, że użytkownik wyjechał na jakiś urlop. Na miesiąc. Był sobie na pierwszym miejscu i przez miesiąc nie zarobił 720 punktów, bo nie logował się na konto. Fant, bo spadł w rankingu. A masz na to rozwiązanie? Musisz pomyśleć o lepszym hostingu jeśli chcesz, by strona była popularna. Wtedy kieruj się limitami użytkowników, transferem oraz dostępnością CRON-a.

1.Oczywiście że znajdę sposób. Podczas wyświetlania rankingu punkty są dawane KAŻDEMU użytkownikowi. :-D . 2. Jak wogóle używać CRONa? 3. Mam dopiero 14lat i jest to gra TYLKO by sprawdzić swoje umiejętności i aby mogli zagrać koledzy z gima. ;-)

1. No okej. Skoro to ma być tylko pokazowa strona, wtedy takie coś jeszcze przejdzie, bo inaczej serwer prędzej padnie niż podliczy wszystkim punkty (mówię o sytuacji, gdyby była pewna sumka użytkowników i jest to czysta teoria).
2. CRON służy do cyklicznego wykonywania zadań. Coś jak harmonogram zadań w windzie. Umożliwia wykonywanie zadań, w tym wykonywanie skryptów co pewien czas - w przypadku CRON-a z dokładnością do minuty. Jak go używać, droga otwarta.

P.S. Czemu poprzedni post napisałeś z innego konta? Czy może to dwie różne osoby?

1. To to samo konto. Jak wchodzę z kompa to na kar a jak z komy to na to.a2. Dzięx

A czy zewnętrzny serwer crona ma sens w tym przypadku??

A jednak wolisz prostotę :D Może być, choć nie wiem jak teraz się mają takie serwisy. Dwa lata temu potrzebowałem takiego, to nie miały zbyt ciekawych opcji (albo trzeba było się co jakiś czas logować, albo pobierali opłatę). W Twoim przypadku, jeśli znajdziesz jakiś serwis, który co minutę, czy ile tam potrzebujesz, będzie mógł wywoływać wybraną stronę, to będzie dobrze.

No właśnie szukam, a z tym jest wielki problem......
W jednej rejestracja nie działa a w innym trza czekać ze 4 miesiące bo limit został wyczerpany....
Inny znów podobno obsługuje crona a tak naprawdę nie....

@EDIT:
Znalazłem wreszcie cronoo.com <- francuski ale darmowy, co minutę i nie ograniczone
Użytkownik kar edytował ten post 17 kwiecień 2010, 19:19
robiłem kiedyś grę online w php. co do CRONa - on przydaje się tylko, jeśli chcemy robić statystyki uaktualniane co jakiś czas, żeby nie obciążać serwera dodatkowymi obliczeniami punktów. jeśli chcesz dodawać surowce co x minut, to w skrypcie przy każdym generowaniu skryptu z licznikami surowców obliczasz ile czasu minęło (PHP: time()) i ile surowców dodać (time() - $czas_ostatniej_akcji). wiem, że może jest to trudne z uwagi na to, że trzeba te obliczenia wykonywać przy każdej akcji odnoszącej się do obiektu przechowującego surowce, ale to rozwiązanie jest najlepsze.

To ludzie zdecydujcie się...........

czychaczowi chodziło o to, że najlepsze rozwiązanie w wypadku, gdy nie korzystasz z CRON-a.

PS
e) Sygnaturki:
- nie mogą być dłuższe niż cztery linijki (przy rozdzielczości 1024x768).
- nie mogą one zawierać żadnych linków/obrazków reklamowych, polecających a ich maksymalny rozmiar
wynosi 3 (wielkość czcionki).


Robisz grę to stawiasz to na lepszym serwerze. Na większości tanich hostingów dają ci CRON, a na lepszych także shella, gdzie można skonfigurować bardziej złożone gry i aplikacje webowe. Obchodzenie podstawowych problemów jak brak CRONa na lichym serwerze skończy się tylko lichą grą ;) "Fajne" gry, czy aplikacje wymagają jednak bardziej zaawansowanego programowania.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.