Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odliczanie czasu
JustHuman4
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 2
Dołączył: 10.12.2011
Skąd: Stumilowy Las

Ostrzeżenie: (0%)
-----


Witam. Pilnie potrzebuję licznik napisany w JS lub AJAX odliczający mi jakiś czas np 8 minut i 15 sekund. Po dojściu do zera zapytanie PHP dodające cyfry do bazy danych.
Mówiąc jaśniej, potrzebuję skrypt na grę, budowanie budynku, po wybudowaniu dodanie punktów.
Bardzo dziękuję za każdy ułamek* kodu
Pozdrawiam

*proszę nie brać tego dosłownie ;P
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ShadowD
post
Post #2





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Głupota, głupota - masz wielki błąd zamysłowy, co powiesz na usera który wybuduje budynek i wyłączy przeglądarkę? Wchodząc ponownie ma znów zacząć go budować?

Takie rozwiązanie jest błędne, tworzysz tabelę w bazie "budowane" i gdy ktoś zacznie budować budynek zapisujesz do niej rekord z czasem w jakim budynek zostanie ukończony, cronem sprawdzasz co minutę czy czas aktualny jest równy z tym z bazy i jeśli tak dodajesz punkty. Jeśli chcesz licznik w js - pobierasz z tabeli "budowane" czas zakończenia i odliczasz od aktualnego. Najlepiej zapisywać czas typu time(), do obliczeń separatory - i +, zamiana na datę - date(), drugi argument.

Jeśli chcesz bardziej profesjonalnie, tabela budujemy może mieć rekord "zbudowane", cron odświeża się co 1 min, a budynek może wybudować się w jej połowie więc user może mieć na liczniku 0, a cron odpali się za 30sec, w takim przypadku można ręcznie odświeżyć (po kliku od usera) jeśli czas ==0 dodajesz punkty i w tabele przy wpisie dodajesz zbudowane=1, do tego do crona potrzebujesz jeszcze jednego warunku by budynek nie skoczył o 2lvl do góry sprawdzający właśnie zbudowane=1. Cron może usuwać wpisy, ręczne odświeżanie też może usuwać zamiast dodawać =1.

Opis działania masz, posługiwanie się if, time(), date() i proste polecenia mysql w sieci. ;-)
Go to the top of the page
+Quote Post
zdemotywowany
post
Post #3





Grupa: Zarejestrowani
Postów: 74
Pomógł: 3
Dołączył: 15.01.2012

Ostrzeżenie: (0%)
-----


Cytat(ShadowD @ 21.01.2012, 14:44:46 ) *
Głupota, głupota - masz wielki błąd zamysłowy, co powiesz na usera który wybuduje budynek i wyłączy przeglądarkę? Wchodząc ponownie ma znów zacząć go budować?

Takie rozwiązanie jest błędne, tworzysz tabelę w bazie "budowane" i gdy ktoś zacznie budować budynek zapisujesz do niej rekord z czasem w jakim budynek zostanie ukończony, cronem sprawdzasz co minutę czy czas aktualny jest równy z tym z bazy i jeśli tak dodajesz punkty. Jeśli chcesz licznik w js - pobierasz z tabeli "budowane" czas zakończenia i odliczasz od aktualnego. Najlepiej zapisywać czas typu time(), do obliczeń separatory - i +, zamiana na datę - date(), drugi argument.

Jeśli chcesz bardziej profesjonalnie, tabela budujemy może mieć rekord "zbudowane", cron odświeża się co 1 min, a budynek może wybudować się w jej połowie więc user może mieć na liczniku 0, a cron odpali się za 30sec, w takim przypadku można ręcznie odświeżyć (po kliku od usera) jeśli czas ==0 dodajesz punkty i w tabele przy wpisie dodajesz zbudowane=1, do tego do crona potrzebujesz jeszcze jednego warunku by budynek nie skoczył o 2lvl do góry sprawdzający właśnie zbudowane=1. Cron może usuwać wpisy, ręczne odświeżanie też może usuwać zamiast dodawać =1.

Opis działania masz, posługiwanie się if, time(), date() i proste polecenia mysql w sieci. ;-)


Po co tutaj crona wpychać. Można przecież zrobić to jeszcze łatwiej. Otóż tak jak napisałeś robi sobie tą tabelę budowane i przy ładowaniu strony te dane są pobierane, a JS odlicza czas do 0, gdy dojdzie do 0 po prostu odświeża przeglądarkę. Nawet jeżeli użytkownikowi komp zmuli to i tak nie wpłynie to na wynik budowy, bo czas zakończenia jest zapisany, a przy odświeżaniu strony można sprawdzać czy zakończona została budowa użytkownika o tym ID.
Go to the top of the page
+Quote Post
IceManSpy
post
Post #4





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(zdemotywowany @ 21.01.2012, 15:05:18 ) *
Po co tutaj crona wpychać. Można przecież zrobić to jeszcze łatwiej. Otóż tak jak napisałeś robi sobie tą tabelę budowane i przy ładowaniu strony te dane są pobierane, a JS odlicza czas do 0, gdy dojdzie do 0 po prostu odświeża przeglądarkę. Nawet jeżeli użytkownikowi komp zmuli to i tak nie wpłynie to na wynik budowy, bo czas zakończenia jest zapisany, a przy odświeżaniu strony można sprawdzać czy zakończona została budowa użytkownika o tym ID.

Ale budenk w grach on-line buduje się po to, aby mieć profit np. +10/h surowca. A tak to dostanę +10 dopiero jak się zaloguje.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 22:54