Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [javascript][php][mysql]Odliczanie, Potrzebuje :(
Bobek1910
post
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ale to nie wszystko... Odliczań w js jest pełno w internecie (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Z góry dzięki
Go to the top of the page
+Quote Post
kantek
post
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
Go to the top of the page
+Quote Post
zegarek84
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
Bobek1910
post
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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) )
Go to the top of the page
+Quote Post
#luq
post
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.
Go to the top of the page
+Quote Post
Bobek1910
post
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 ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
#luq
post
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ś (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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: 25.08.2025 - 17:37