MeGusta
25.10.2015, 15:19:58
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
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.
MeGusta
25.10.2015, 15:29:46
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
25.10.2015, 17:53:58
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
25.10.2015, 19:57:08
Dziękuję bardzo, mam ostatni juz myśle problem. W jaki sposób pobierać najbardziej podobne do gracza misje?
SELECT * FROM quests
WHERE wym_lvl
= $lvl_gracz

olszam
25.10.2015, 23:53:58
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
26.10.2015, 19:08:23
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
26.10.2015, 20:27:53
MeGusta
26.10.2015, 20:37:01
Ta funkcja usunie mi tylko przecinki, jak mogę zrobić że przypisze te 3 wartości do trzech róznych zmiennych? np. $zloto, $exp , $points
olszam
26.10.2015, 21:00:05
właśnie z explode zobacz przykład w dokumentacji
$award = "0,100,21"; // tutaj zamiast tej wartości dajesz zwrócony wynik z zapytania.
$zloto = $award2[0]; // 0
$exp = $award2[1]; // 100
$point = $award2[2]; //21
viking
26.10.2015, 21:08:04
Zobacz też list()
MeGusta
28.10.2015, 18:32:41
Co robię źle? Chcę aby po zwróceniu msg == 1 przeładował się plik karczma.php do diva game_box.
function acceptMission(n) {
$.post('main_engine.php', {task: 10, quest_id: n})
.done(function(msg) {
if(msg == 1){
$('#game_box').load('page/karczma.php', function() {});
} else {
alert(msg);
}
});
}
viking
28.10.2015, 18:42:07
Na początek zobacz co zawiera msg: console.log(msg);
MeGusta
28.10.2015, 18:43:50
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
28.10.2015, 19:07:19
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.