![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 16.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie,
Bardzo proszę o jakieś wskazówki - zagadnienie jest dla mnie na tyle nowe, że mam problem z zapytaniem googla tak, aby uzyskać jakąś sensowną odpowiedź. Chciałbym napisać skrypt, który działałby analogicznie do tych znanych z gier MMO (np ogame). Nie piszę gry, jednak na tym przykładzie najłatwiej będzie mi wytłymaczyć istotę problemu. Załóżmy, że gracz1 wysyła atak na gracza2. W bazie danych zapisuję czas wysłania, czas przeprowadzenia ataku oraz czas powrotu. Atak dolatuje na planetę przeciwnika i w tym momencie następuje kalkulacja, ile surowców udało się wygrać - czyli dane te pobierane są z bazy gracza2 dokładnie o czasie przybycia, a nie są symulacją tego, co byłoby gdyby atak odbył się natychmiast po wysłaniu floty (czyli dajmy na to o godz. 14, skoro rzeczywisty atak nastąpił dwie godz. później). Czy macie może jakiś pomysł, jak zrobić coś takiego nie zmuszając użytkownika, by siedział cały czas przed przeglądarką (javascript odpada), a także bez uzycia crone' a? Czy coś takiego w ogóle jest możliwe? Pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
Z tego co pamiętam jak się bawiłem ugamelami i ostatnio nawet xgp_core to tam nie było użycia crona.
W sumie też mnie to dziś ciekawiło i sam nie bardzo wiem jak temat ugryźć, akurat w moim przypadku o grę chodzi. Zastanawiam się czy nie chodzi o to: https://edu.pjwstk.edu.pl/wiki/0037693cfc74...CookieSupport=1 Dołączam się do dyskusji i pytania autora ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
1.
Dlaczego bez crona? Pytam bo w 90% takich pytań okazuje się że można to zrobić cronem ale zadający pytanie z błędnego przeświadczenia myśli że nie. 2. Skoro nikt nie spogląda na grę to nie ma potrzeby wykonania akcji. Dopiero w momencie gdy któryś z graczy zaloguje się możesz wykonać akcję gdyż nie ma znaczenia kiedy zostanie wykonana skoro nikt tego nie widzi. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 16.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
1. Dlaczego bez crona? Pytam bo w 90% takich pytań okazuje się że można to zrobić cronem ale zadający pytanie z błędnego przeświadczenia myśli że nie. Hmm.... jeśli tak mówisz, to sprawdzę to jeszcze raz dokładnie ![]() ![]() Cytat 2. Skoro nikt nie spogląda na grę to nie ma potrzeby wykonania akcji. Dopiero w momencie gdy któryś z graczy zaloguje się możesz wykonać akcję gdyż nie ma znaczenia kiedy zostanie wykonana skoro nikt tego nie widzi. To prawda, jednak zdarzenie musi być zarejestrowane dokładnie o czasie - analogicznie do obliczania surowców do "pobrania" w danej minucie, a nie dopiero po zalogowaniu. Czy wyzwolenie triggera w bazie danych może w jakiś sposób wpłynąć na pliki php na serwerze? Wyzwolenie triggera = aktywacja pliku PHP, jest taka możliwość? ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o eventach w mysql. Możesz je tworzyć z poziomu skryptu php, dodając do nich określony czas kiedy mają się wykonać i ile razy mają się wykonać. Żeby wiele razy tego samego nie pisać, do takiego eventu możesz podczepić procedurę i przekazać do niej jakieś dane. Nie jestem pewien czy tak działają tego typu serwisy, ale tak można by to było zrobić. Oczywiście jak już ktoś wyżej napisał, jest jeszcze cron, do którego możesz podłączyć swój skrypt php, który będzie sprawdzał w jakiejś tabeli w bazie danych, czy są jakieś "zadania" do wykonania. Do takiego zadania możesz przypisać czas żeby mieć pewność że nie zostanie wykonane wcześniej. No opcji jest na pewno jeszcze conajmniej kilka.
EDIT: trigger działa na zasadzie akcji - jeżeli ty coś zrobisz, to on zostanie wyzwolony. Więc nie odpowiada to temu co napisałeś w pierwszym poście. Dodatkowo - baza danych to jest zupełnie osobny proces i jeżeli się z nim komunikujesz to na zasadzie z php do mysql. Odwrotnie raczej nie. Ten post edytował by_ikar 22.06.2014, 20:49:23 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 16.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za odpowiedź! Jutro w pracy będę miał aż za dużo wolnego czasu, więc zagłębię się w lekturę. I pewnie wrócę tutaj z kolejnymi pytaniami
![]() Na chwilę obecną dziękuję serdecznie i z radością usłyszę o innych możliwościach rozwiązania tego problemu, o których wspominałeś. Pozdrawiam! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:08 |