Pokaż wyniki od 1 do 5 z 5

Wątek: Walka turowa - objaśnienie

  1. #1
    Zarejestrowany
    Dołączył
    Mar 2013
    Posty
    72

    Domyślnie Walka turowa - objaśnienie

    Witajcie.Przez ten dlugi czas gdy mnie nie bylo,trochę się uczylem php.Stworzylem narazie gierkę typu gladiatus tylko bez ekwipunku.Są misktury,przyzwoita strona,statystyki,automatyczna walka gracz vs gracz i gracz vs potwór.Przez ten dlugi czas zdążylem się trochę nauczyć.Przestalem robić na hama.A teraz do rzeczy:

    Jestem w trakcie tworzenia walki turowej.Problemem nie jest to że ktoś może wyjść z walki a druga osoba musi czekać gdyż wiem jak temu zapobiec.Chodzi mi o to czym zrobić tą walkę turową.Próbowalem wrzucić kawalek kodu do pętli ale coś nie wyszlo.Próbowalem pisząc strasznie dlugi kod w miare ilości hp przeciwnika,gracza.Lecz coś mi nie wychodzi.
    Jedyne co od was potrzebuję to to jak to zrobić.Nie chcę kodu tylko objaśnień.Wiem na jakiej zasadzie ma to dzialać.


    Ps.Rodkan chcesz to ciśnij mnie ale będe bral to w sposób pozytywny.


    // Migo: Zmieniam nazwę tematu, staraj się dobierać je sensownie.
    Ostatnio edytowane przez Migo ; 24-06-2013 o 22:02
    Zawsze pozytywnie nastawiony

  2. #2
    Aktywny
    Dołączył
    Dec 2011
    Posty
    273

    Domyślnie

    Zmień sygnaturę.

    _______________________________________________


    I)
    Jeżeli gracz 1 atakuje gracza 2:
    Jeżeli gracz 2 zaakceptował walkę (chyba, że nie ma wyboru i koniecznie musi walczyć):

    II)
    Pojawia się strona z przykładowymi przyciskami:
    - atakuj
    - obrona
    - ucieczka
    - ...
    Po każdym kliknięciu za pomocą AJAX'a wykonujesz jakąś akcję.

    III)
    1 - Jeżeli atakuj:
    Obliczanie obrażeń:
    Jeżeli przeciwnik życie > 0:
    Koniec walki, nagroda.

    2 - Jeżeli obrona:
    Chwilowo zwiększ parametr obrony i nie zadawaj ciosu:
    Jeżeli gracz (nie przeciwnik) życie > 0: (zresztą po oby stronach sprawdzasz czy życie <= 0)
    Koniec walki, nagroda.

    3 - Jeżeli ucieczka:
    Jeżeli szansa >= losowa liczba:
    Koniec walki, brak nagrody.



    Jeżeli piszesz to w sposób obiektywny to problemu nie powinno być, jeżeli piszesz to strukturalnie to pogubisz się w własnym kodzie po pewnym czasie.


    Próbowalem wrzucić kawalek kodu do pętli ale coś nie wyszlo.
    Pętli tutaj nie potrzebujesz, samo sprawdzanie czy przeciwnik nie umarł i czy gracz ma punkty życia powinno wystarczyć, potem względem tych danych robisz to co masz robić. Pętla przydałaby się do walki automatycznej, nie jestem pewien czy do walki turowej (mówi się turowej?) należy wykorzystywać pętlę, w każdym razie ja nie widzę do czego ona Ci się tutaj przyda?


    Próbowalem pisząc strasznie dlugi kod w miare ilości hp przeciwnika,gracza.Lecz coś mi nie wychodzi.
    ... "strasznie dlugi kod", "strasznie dlugi kod", "strasznie dlugi kod"... Ja bym tu dał zwykłego if'a

    _______________________________________________


    BTW.: Dziwię się, że nikt Ci nie odpowiedział przede mną.

  3. #3
    Zarejestrowany
    Dołączył
    Mar 2008
    Posty
    251

    Domyślnie

    W gruncie rzeczy, jeżeli chodzi o sprawdzanie, czy inny gracz odpowiada, to wystarczy AJAX (zakładam, że od strony php masz wszystko zrobione). Musisz sprawdzać co jakiś czas, czy została wysłana odpowiedź, a jeżeli nie - to wtedy zakończyć walkę.

    PS Bartek - Twój "sposób obiektywny" jest fenomenalny - you made my day

  4. #4
    Zasłużony Awatar Rodkan
    Dołączył
    Mar 2011
    Posty
    1,465

    Domyślnie

    Pętli tutaj nie potrzebujesz, samo sprawdzanie czy przeciwnik nie umarł i czy gracz ma punkty życia powinno wystarczyć, potem względem tych danych robisz to co masz robić.
    No jak to nie, chyba musi sprawdzać co wykonanie akcji czy przeciwnik nie umarł lub nie uciekł, bądź też czy my nie umarliśmy. I tego inaczej nie zrobisz jak w pętli (pomijam setki razy powielony ten sam kod sprawdzający).

    I zmień lepiej nazwę tematu na jakąś konkretniejszą...

  5. #5
    Programista
    Dołączył
    Sep 2007
    Posty
    622

    Domyślnie

    Żeby przeprowadzić walkę turową, w której każdy z graczy będzie decydował w każdej z tur co chce zrobić (coś jak walka turowa pve w Vallheru, tylko pvp), konieczne jest wykonanie co najmniej jednego wywołania AJAX na każdego z graczy w każdej turze. Nie będzie tam raczej pętli, bo jedna akcja przypada na jednego gracza (chyba że sam mechanizm walki będzie ją zawierał, ale wnioskuję z opisu problemu że nie w tym rzecz).

    Oprócz tego drugi z graczy będzie musiał AJAX'em sprawdzać co jakiś czas, czy drugi gracz już coś zrobił. Stan samej walki musi być zapisywany w bazie danych pomiędzy requestami. Są na to co prawda inne sposoby, ale ten opisany powyżej jest najskuteczniejszy (chociaż niekoniecznie najbardziej elegancki - jak ktoś ma ochotę, to niech poczyta na temat http://socket.io/ i socket'ach w ogólności).

    Gracz 1 rozpoczyna walkę
    Gracz 2 otrzymuje powiadomienie o walce (co 10s. każdy z graczy sprawdza, czy nie został zaatakowany) i decyduje, czy chce walczyć (brak decyzji powinien raczej oznaczać brak zgody - kogoś może rozłączyć albo akurat wyszedł i byłoby słabo.
    Gracz 1 wykonuje akcję (atak/obrona), w tym czasie gracz 2 co 5s. sprawdza, czy Gracz 1 wykonał akcję
    Gracz 2 dostaje powiadomienie, że Gracz 1 wykonał akcję i wykonuje swoją
    Gracz 1 dostaje powiadomienie, że Gracz 2 wykonał akcję i wykonuje swoją
    Gracz 2 dostaje powiadomienie, że Gracz 1 wykonał akcję i wykonuje swoją

    Jeżeli któryś z graczy nie odpowiada przez dłużej niż 1 minutę, uznajemy że przegrał walkę/nic nie robi/broni się (kwestia wyboru). Czasy podane w tym poście są orientacyjne i pewnie trzeba je zmienić.
    Ostatnio edytowane przez Klaus Korner ; 27-06-2013 o 07:14
    http://orodlin.pl/ - Orodlin.pl Team Member
    http://blog.albitos.eu - Albi's Jogger - Z pamiętnika młodego programisty
    http://wsosnowski.pl - wizytówka

    Mam do wynajęcia miejsce na serwerze dedykowanym. Ktoś zainteresowany?

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Pomoc w zrobieniu warunku potrzebna
    Przez haxigi w dziale Budowa gry via www
    Odpowiedzi: 3
    Ostatni post / autor: 18-04-2010, 12:04
  2. Ustawienia potrzebna pomoc
    Przez jerzyxd w dziale Pytania dotyczące silnika Xnova
    Odpowiedzi: 2
    Ostatni post / autor: 27-03-2010, 10:00
  3. Błąd-Potrzebna Pomoc
    Przez Azides w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 7
    Ostatni post / autor: 28-02-2010, 14:02
  4. Błąd? Niczego nie ma. Pomoc potrzebna!
    Przez przemo123pl w dziale prp
    Odpowiedzi: 5
    Ostatni post / autor: 29-03-2009, 15:04
  5. Potrzebna pilna pomoc!!!!!!
    Przez mateusz93k w dziale Support Ugameli
    Odpowiedzi: 4
    Ostatni post / autor: 15-02-2008, 14:56

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •