Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]System Misji.
Forum PHP.pl > Forum > Przedszkole
MeGusta
witam kolegów, jako ze jestem początkujący chciałbym Was zapytać jak mógłbym zrobić następujący system (misji).

Wyświetlam dwie misje które gracz może sobie przyjąć, po przyjęciu jednej z dwóch usuwaja sie wybór misji i pokazuje tylko stan obecnie wybranej, po zakonczonej misji losuje 2 nastepne misje z bazy które najbardziej odpowiedają wymaganemu poziomowi gracz i znów je wyświetla i daje wybór i tak cały czas.

Nie proszę o gotowca lecz o wytłumaczenie jak taką funkcję misji mogę zrobić.

Z góry dziękuję za pomoc.
Kshyhoo
Zmień tytuł wątku na zgodny z zasadami. To dział dla początkujących i szukających pomocy, nie trzeba ujmować tego w tytule.
MeGusta
Cytat(Kshyhoo @ 25.10.2015, 15:25:39 ) *
Zmień tytuł wątku na zgodny z zasadami. To dział dla początkujących i szukających pomocy, nie trzeba ujmować tego w tytule.


Przepraszam i dziękuję za zwrócenie uwagi, tytuł zmieniony.


Co do mojego problemu, mógłby ktoś pomóc/wyjaśnić?
sher
Ja to widzę tak:
Masz tabelkę z użytkownikami, misjami (jakby wzorami misji), i jeszcze jedną, żeby zapisać status misji wykonywanej przez danego użytkownika.
W tabeli usera robisz coś w stylu "obecna misja" i jeśli te pole jest puste, to wyświetlasz dwie misje najbliższe jego poziomowi, a jeśli zajęte to pobierasz id wykonywanej misji i wyświetlasz o niej informacje. Jak ukończy misję, to w rekordzie w tabeli o statusie misji zaznaczasz, że została zakończona. Oczywiście przy wyświetlaniu dwóch następnych sprawdzasz czy dana misja została już robiona przez tego użytkownika, i jeśli była, to jej nie wyświetlasz.
MeGusta
Dziękuję bardzo, mam ostatni juz myśle problem. W jaki sposób pobierać najbardziej podobne do gracza misje?

  1. SELECT * FROM quests WHERE wym_lvl = $lvl_gracz questionmark.gif
olszam
  1. SELECT * FROM quests WHERE wym_lvl >= $lvl_gracz-10 AND wym_lvl <= $lvl_gracz


wtedy jest lista questów które wymagają poziomu od max 10 lvli mniejszą od tego którego posiada gracz do poziomu jaką posiada gracz. Tego $lvl_gracz-10 dałbym w jakiejś zmiennej by później gdzieś kiedyś się nie sypało przy zapytaniach.
MeGusta
Dziękuję, jeszcze zapomniałem o jedno spytać, dokładniej chodzi o nagrodę, formami wynagrodzenia może być złoto przedmiot lub punkty. Jak zdefiniować to w bazie? ;/ aktualnie mam coś takiego. Problem mam taki ze nie chce robić 10 kolumn aby w każdej wpisywać ilości nagród i id danego przedmiotu. Chciałbym to jakoś w jednej kolumnie zmieścić tylko jak to zrobić? jesli zapisałbym coś takiego w bazie : array{0,100,21} polegało by to na tym że gracz dostanie 0 złota, 100 punktów i przedmiot o id 21, w jaki sposób w php mógłbym zrobić? zalezy mi tylko na tym odczytywaniu z tablicy zapisanej w bazie, jak to oddzielać aby sprawdzić co jest co?

olszam
użyj funkcji explode http://php.net/manual/en/function.explode.php
MeGusta
Ta funkcja usunie mi tylko przecinki, jak mogę zrobić że przypisze te 3 wartości do trzech róznych zmiennych? np. $zloto, $exp , $points questionmark.gif
olszam
właśnie z explode zobacz przykład w dokumentacji

  1. $award = "0,100,21"; // tutaj zamiast tej wartości dajesz zwrócony wynik z zapytania.
  2. $award2 = explode(",", $award);
  3. $zloto = $award2[0]; // 0
  4. $exp = $award2[1]; // 100
  5. $point = $award2[2]; //21
  6.  
  7. echo $exp; // 0


viking
Zobacz też list()
MeGusta
Co robię źle? Chcę aby po zwróceniu msg == 1 przeładował się plik karczma.php do diva game_box.
  1. function acceptMission(n) {
  2.  
  3. $.post('main_engine.php', {task: 10, quest_id: n})
  4.  
  5. .done(function(msg) {
  6.  
  7. if(msg == 1){
  8.  
  9. $('#game_box').load('page/karczma.php', function() {});
  10.  
  11. } else {
  12.  
  13. alert(msg);
  14.  
  15. }
  16.  
  17. });
  18.  
  19. }
viking
Na początek zobacz co zawiera msg: console.log(msg);
MeGusta
Sam skrypt jest okej, msg zwraca 1 lub 0, lecz to jest w porządku, mam problem z samą funkcją load, problem w tym że /page/karczma.php jest obecnie wczytywany przez php do diva, chce za pomocą funkcji load tylko go odświeżyć aby dokonały się zmiany.

konsola zwraca prawidłowo 1.
viking
Zgodnie z dokumentacją: Description: Load data from the server and place the returned HTML into the matched element.
Jeżeli nie chcesz zastępować diva musisz ręcznie obrobić dane.
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.