Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [javascript][php][mysql]Odliczanie, Potrzebuje :(
Bobek1910
post 14.04.2009, 18:56:21
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 3
Dołączył: 14.04.2009
Skąd: Wziąć piwo?

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


Witam!


Potrzebuje odliczania w js smile.gif

Ale to nie wszystko... Odliczań w js jest pełno w internecie smile.gif

Potrzebuje takiego odliczania, które będzie pobierało sekundy z bazy danych i co sekundę, będzie zmniejszało sekundy w bazie danych i na koniec odliczania ustawi tabele w bazie na "0".

Takie odliczanie jak np. w grach typu Plemiona smile.gif

Z góry dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
kantek
post 14.04.2009, 19:59:03
Post #2





Grupa: Zarejestrowani
Postów: 73
Pomógł: 15
Dołączył: 2.04.2009
Skąd: koszalin

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


Robisz to przez php to odliczanie możesz zrobić przez time().

czyli.
1. pobierasz z bazy $czas
2. przez time() mija sekunda
3. pokazujesz na ekranie ze ubywa z licznika ($licznik_czasu --)
4. zapisujesz do bazy $czas-1;

Problem może być taki, że przy zapisie i odczycie do i z bazy też zajmuje to jakiś czas dlatego wątpię, aby odliczanie w tych grach zapisywano do bazy co sekundę (ale mogę się mylić),
lub odliczanie to uwzględnia (np. 1s - czas odczytu-czas zapisu) teoretycznie przy założeniu, że za każdym razem czas takiej akcji zapis/odczyt z db jest stały.

Pozdrawiam


--------------------
kantek.com.pl
Go to the top of the page
+Quote Post
zegarek84
post 14.04.2009, 20:37:17
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


Cytat(Bobek1910 @ 14.04.2009, 19:56:21 ) *
Takie odliczanie jak np. w grach typu Plemiona smile.gif

w grach typu plemiona nie uaktualniasz czasu w bazie co sekundę - masz tam zapisany albo początek akcji i podczas akcji sprawdzany warunek lub zapisany czas samej akcji - to odliczanie jeśli zostawisz na kilka godzin otwarte okno ataku w przeglądarce bez odświeżania i popatrzysz na czas a następnie odświeżysz to będzie on inny - zresztą wypnij kabel od neta a odliczanie będzie trwało nadal ]:-> - to odliczanie które widzisz jest tylko informacją - wszystko najważniejsze spełnienie warunków na serwerze....


wiem o czym piszę gdyż w plemiona trochu grałęm i jeszcze trza było złośliwym moderatorm udowadniać, że da się wysłać 4 ataki poniżej 1s ręcznie bez botów - ba nawet 5 się da i to spokojnie w 0.5s ^^ ale już 6 za czorta nie wyślesz ^^ (tzn da się ale to już wtedy musiałbyś się "wstrzelić" by w danej sekundzie doszedł kolejny atak) - i najważniejszy jest czas w tysięcznych sekundy - ale mało tego - wielu ciężko jest udowodnić, że da się "wbić" w tak "ciasny" atak falowy i jeśli im się uda wysłać kilka ataków w 1s to zgłaszają żeś się obronił ^^ - tyle, że wystarczy liczyś i masz wtedy ze 100 prób wbicia się w atak ^^


ale najlepsza jest gra gdy w pojedynkę zadrzesz z najsilniejszym i najbardziej zgranym plemieniem na kontynencie ^^, gdy nie wystarczyły by własne siły i otwarta walka, gdy dyplomacją zbierasz sojuszników będąc bez plemienia, pokazując, że się bronisz, jakie straty zadajesz i dajesz możliwość odegrania się wrogów "farmom" ^^ - ziarno do ziarna i bronić nie można każdej przejętej wioski

BARDZO DUŻY MINUS TEJ GRY TO SAMA DYPLOMACJA ZA BARDZO WCIĄGA I TAKIE KLIKANIE TO MASĘ CZASU POCHŁANIA - bo jeśli grać nawet z farmieniem to momencik tylko trzeba mieć kilka rozwiązań ^^ - ale nudna jest gra jak się przyłączysz do najsilniejszych - lepiej grać przeciw takim - ale czy taka gra oznacza wariactwo?? ;D


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
Bobek1910
post 15.04.2009, 14:11:10
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 3
Dołączył: 14.04.2009
Skąd: Wziąć piwo?

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


A jest jakaś możliwość, aby po wykonaniu js'a (z odliczaniem) wykonać zapytanie w mysql, żeby czyściło wszystko?(sorki ale w js jestem zielony sad.gif)
Go to the top of the page
+Quote Post
#luq
post 15.04.2009, 15:45:03
Post #5





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Kiedyś zabierałem się za pisanie gry przeglądowej i taki problem jest dość prosto rozwiązać.

Tak jak już wyżej napisano, zapytanie nie może co sek aktualizować bazy. Spowolniłoby to ją strasznie, jakby w ogóle udało by się jej nie paść przy większej ilości userów.
Ja napisałem to w ten sposób:

Każdy budowa budynku przez pojedynczego gracza to osobny rekord w bazie, poza polami nie istotnymi tutaj były dwa pola z datą, określające start budowy ( a więc w MySQL zwykłe NOW() ) oraz drugie, które zawierało datę końca budowy (był znany tylko czas budowy, a więc koniec powstawał start_budowy+czas_budowy, wszystko obliczane w zapytaniu). Po załadowaniu strony obliczany był pozostały czas budowy w sek. (koniec_budow - aktualny_czas), jeśli był < 0 wtedy wpis był kasowany, w przeciwnym wypadku, liczba sekund była przekazywana do skryptu JS, który odliczał go sobie.


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
Bobek1910
post 15.04.2009, 18:43:03
Post #6





Grupa: Zarejestrowani
Postów: 31
Pomógł: 3
Dołączył: 14.04.2009
Skąd: Wziąć piwo?

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


Aha czyli robię w tabeli użytkownicy tabelę czynność i czas czynności(czy koniec czynności?) i sprawdzam ile czasu pozostało, jeśli jest < 0 czyszcze tą tabelę a w innym wypadku, obliczam sekundy i wrzucam do odpowiedniego skryptu w js? dobrze zrozumiałem ? smile.gif
Go to the top of the page
+Quote Post
#luq
post 16.04.2009, 10:19:37
Post #7





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


W tabelce powinieneś mieć pole z datą początku zadania oraz pole z datą końca zadania.
Resztę dobrze zrozumiałeś winksmiley.jpg


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:53