• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dialogi wczytywane z pliku

Object Storage Arubacloud
+2 głosów
153 wizyt
pytanie zadane 8 stycznia 2016 w C i C++ przez GameProgrammer Obywatel (1,140 p.)
Witam, o ile wiem jak napisać kod, to nie wiem jak zapisywać te dialogi w pliku. Miałem taki pomysł żeby wczytywać tekst od NPC, do tego też identyfikator, to zapisać do jakiegoś pair int,string żeby potem się odwoływać. Do tego jeszcze odpowiedzi też z ID które przekierowują do kolejnego dialogu. Tylko nie wiem jak to wszystko zapisywać w pliku tekstowym, każdy NPC ma osobny plik txt, więc macie jakieś pomysły jak to tam wstawić? :)

2 odpowiedzi

+1 głos
odpowiedź 8 stycznia 2016 przez kantekand Obywatel (1,180 p.)
edycja 8 stycznia 2016 przez kantekand
nie wiem czy chodzi Ci o coś takiego:

npc.txt
id_odzywki(tego textu nie ma w pliku) odzywka | id_odpA | id_odpB | id_odpC

id_odzywki = numer linii w pliku

potem dajesz file(npc.txt) i masz w tablicy odzywki poindeksowane w tablicy

forech($file as $linia)
explode po ograniczniku "|" i masz od linia[1] do linia[linia.length-1] - idiki kolejnych dialogów na podstawie odpowiedzi

lina[0]= odzywka

linia[1]=odpA

nie wiadomo ile będzie odpowiedzi więc obliczamy length danej linii i jak mamy np.5 to opd. są w linia[1]-linia[4]
komentarz 8 stycznia 2016 przez kantekand Obywatel (1,180 p.)
przepraszam, że trochę tu namieszałem z php ale Tobie chodzi i tak o koncept więc na pewno da się to przełożyć na C++
komentarz 8 stycznia 2016 przez GameProgrammer Obywatel (1,140 p.)
O to mi chodziło. Czy "odzywki" i odpowiedzi powinny być w innych plikach txt? Jak oznaczać potem odnośniki do kolejnych "odzywek" dla odpowiedzi? I potem znowu musi się przecież wyświetlić "odzywka" i zestaw odpowiedzi.
komentarz 8 stycznia 2016 przez kantekand Obywatel (1,180 p.)
możesz to zrobić w jednym lub dwóch

w pierwszym przypadku więcej kombinacji jest

1 | odzywka | odpA->1 | odpB->2(nr odzywki)

2 | Koniec z tobą

3| Mam pare pytań | odpA->60 | odpB->61

linia[0] = String "odzywka"  linia[1]= Stirng "odpA->nrlinii_celu" i potem rozbijasz "->" znów na tablicę

linia[1] = podlinia[0] = String "odpA" + podlinia[1] int nrlini (może tutaj wymagać rzutowania)

 

w dwóch plikach byłoby łatwiej

 

odzwyki.txt

id_odzywki = nrlinii | odzywka | idodp1 | idodp2 | idodp3

 

odp.txt

id_odp=nrlinii | odpowiedź | id_odzywki_następnej

 

oczywiście w obu plikach najlepiej w pierwszej linii dać "Koniec Rozmowy"
0 głosów
odpowiedź 8 stycznia 2016 przez Patrycjerz Mędrzec (192,320 p.)
Trudno zrozumieć, w czym problem. Obsługę plików za pomocą bibliotek standardowych umiesz? Problem leży jedynie z zaplanowaniu danych w plikach?
komentarz 8 stycznia 2016 przez GameProgrammer Obywatel (1,140 p.)
Problem leży jedynie z zaplanowaniu danych w plikach
komentarz 8 stycznia 2016 przez Patrycjerz Mędrzec (192,320 p.)

A od czego mają być zależne dialogi w grze? Od postaci, od sytuacji... Postać masz wyodrębnioną, ponieważ trzymasz to wszystko w różnych plikach, sytuacjom możesz nadać jakiś unikalny klucz, czyli pierwszy dialog - 0, drugi - 1 itd.

Ogólnie plik mógłby wyglądać tak:

(postac_1.txt)

0

Ala ma kota

1

A kot ma Alę

2

Mietek ma psa

3

A pies ma Mietka

...

Potem tylko stworzyć specjalną funkcję, która wczytywałaby dane z pliku i wykonywałaby dany dialog, po wcześniejszym odróżnieniu go za pomocą klucza.

EDIT: Możesz nawet nie używać dodatkowych kluczy, a jedynie korzystać z numeru wiersza - jak ci wygodniej.

Podobne pytania

+1 głos
2 odpowiedzi 468 wizyt
pytanie zadane 5 sierpnia 2019 w Inne języki przez Grozmo Użytkownik (750 p.)
0 głosów
1 odpowiedź 109 wizyt
pytanie zadane 28 marca 2016 w C i C++ przez Pixel040 Gaduła (3,100 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...