Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sekundowe wyliczanie surowców
Forum PHP.pl > Forum > Przedszkole
Terrorizer
Cześć,
Piszę grę opartą na php. W zależności od stopnia rozbudowania budynków i innych czynników użytkownik będzie otrzymywał surowce jak drewno, złoto itp.
W innych tego typu grach surowce rosną dynamicznie, cały czas - właśnie tak chcę to rozwiązać
Pytanie tylko jak to zrobić po stronie backendu? Ilość surowców znajduje się w bazie danych w tabeli na zasadzie [id, user_id, gold, wood, stone, metal] i jest to tylko updatowane przy każdym przyroście.
Jak to naliczać aby nie zajechać serwera, a użytkownik miał komfort z nieustannie przychodzących surowców? Przecież nie będę ich naliczał co kilka minut.
Frontendowo można to jakoś nawet osobno obliczać, ale jak rozwiązać kwestię realnej liczby surowców w bazie?
Wstępnie planowałem to wyliczać na podstawie godzinowego przychodu, obecnego czasu serwera i ostatniego naliczenia przy każdej operacji odświeżenia strony lub przy kupnie czegoś.
Pyton_000
Masz budynek: tartak.

Poziom tartaku: 5
Wydobycie drewna 25/h

Za każdym odświeżeniem czas ostatniej aktywności.
Bierzesz sobie różnicę czasu, wychodzi np.: 10 min.
Przeliczasz wydobycie wzorem na proporcję:

25lumber - 60 min
x lubmer - 10 min

Co daje nam:
x = 25lumber * 10 min / 60min = 25 / 6 = ~4.2

Zaokrąglasz wartość wg. zasady ogólnej tj do 5 w dół powyżej w górę.

Tyle. Za każdym razem robisz takie odświeżenie dla każdego budynku.

PS. Możesz też ustawić jakiś mnożnik wydobycia względem poziomu.
Neutral
Napisz event'a w bazie danych i automatycznie będzie ci się zmieniać ilość (wartości) surowców w bazie. Do tego np. jakiś AJAX i nie będziesz musiał odświeżać ręcznie, tylko będzie to działało asynchronicznie.

https://dev.mysql.com/doc/refman/5.7/en/create-event.html
Pyton_000
To nie jest dobry pomysł. Zajedziesz bazę tym. Aczkolwiek fajny pomysł.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.