Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zadania w grze via www.
Forum PHP.pl > Forum > Przedszkole
Novy.
Hej smile.gif

Zastanawiam się w jaki sposób napisać system zadań, który zminimalizowałby edycję kodu gry.

Tzn. dodawanie nowego zadania nie wiązałoby sie z edycją plików - nie mówie tutaj o zupełnym braku edycji, ale wolałbym, żeby ingerencja była jak najmniejsza.

Pewnie trzeba zrobić w bazie tabele z zadaniami i Npc'tami.

Ale co dalej? Dzięki z góry za pomoc. Nie oczekuje kodu, wystarczy tylko teoria.
markonix
Może rozwiń troszkę Twój post..

Jakie zadania? Jakie znów NPC?
ensei
No ja bym to zrobił w taki sposób, mam główną klasę, odpowiedzialną za obsługę pluginów(dajmy na to system zadań jest takim pluginem).
Później taki plugin tworzę i inicjalizuję w głównej klasie.

W bazie.
Tabela z zadaniami(id, id_npc itd..., tablicaZdialogami, nagroda)

Tabela z npc (id, imie, lokalizacja)

W tabeli user kolumna trzymająca ukończone questy.
Novy.
@2up

czego nie zrozumiałeś? opsiałem wszystko, że chce zrobić system zadań/questów w grze. npc to coś z czym rozmiawaimy, przyjmujemy od niego zadania, zmieniami progres questa i konczymy.

@up

a jeżeli zadanie było by bardziej rozbudowane?

np. od npc1 bierzemy questa - kaze nam coś przyniesc i wie ze takie cos ma npc2, idziemy do npc2 - ma rzecz ktora potrzebuje npc1 ale odda kiedy uzbieramy X czegos tam. zebralismy te przedmioty, wracamy do npc2 on nam daje coś co mozemy oddac npc1 i zakonczyc questa.

troche nie mogę ogarnąc tego, jak by to miało wyglądać.
ensei
Hmm. Tak na szybko.
Łatwa weryfikacja, żeby user nie przeskoczył jakiegoś etapu.
Przy rozmowie z NPC sprawdza czy ma daną ilość lub dany przedmiot i myślę że fsio.
Nie uwzględniłem tutaj tego, że user ten SWORD musi mieć od NPC2. Bo może inaczej też może zdobyć tongue.gif?

  1. $quest[0] = array(0 => array(ID_NPC1 => GET_SWORD007), 1 => array(ID_NPC2 => COLLECT_WOOD_20) )


dialogi:
  1. $dialog[0][0] = array(
  2. 'start' => 'Przynieś mi miecz od NPC2!'
  3. , 'weryfikacja' => 'I co masz już mój miecz?'
  4. , 'koniec' => 'Teraz możemy zniszczyć świat biggrin.gif');


Tabela Zadania(id, mission, min_lvl, nagroda)
Tabela Dialogi(id, id questa, id_etapu, start, weryfikacja, koniec)
Tabela z npc (id, imie, lokalizacja)
Tabela zadania userow(id user id zadania częsc zadania)


Budujesz klasę odpowiedzialną za to co user ma zrobić.
Obsługującą np. GET, COLLECT, ESCORT, TALK.

GET_SWORD007
COLLECT_WOOD_20
ESCORT_NPC5
TALK_NPC5
Novy.
Ok, dzięki za pomoc smile.gif
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.