NukeBoards

Pomoc - dialogi w pliku INI + opcja wyboru dialogu

jaxoo22 - 02-01-2019, 15:29
: Temat postu: dialogi w pliku INI + opcja wyboru dialogu
Witam kolegy i kolezanky. Jestem osoba nowa wiec z tego miejsca witam tu wszystkich zgromadzonych. Sprawa jest tego typu ze CTF jest świetny program pozwala przyoszczędzi mnóstwo czasu którego mam mało. Zajmuje się grafika, pixel art mój konik. Jestem w trakcie działania swojej autorskiej gry. Moim kamieniem milowym jest działający silnik który będzie bazą pod 1 poziom w grze. Mam bardzo proste inventory, pełen zakres ruchów postaci łącznie z atakiem, wspinanie się po ścianach normalnie cuda na kiju. W grze dość istotnym elementem będzie system dialogów. Ma ktoś jakiś przystępny przykład takiego. ?

-Bardzo ważne jest aby dialogi wpadały z pliku ini +++, oczywiście nie chce żeby mi ktoś z dialogów spojlerował sobie gre. Gra przetłumaczona na angielski będzie wiec ini jest niezbędne, do sprawnego tłumaczenia.

-Potrzeba mi aby można było wybrać interesująca nas kwestię dialogową która to da inne kwestie i opcje dialogowe w grze. Krótko mówiąc chce umożliwić graczowi wybierania opcji dialogowych.

-Dodatkowo mam pytanie z czcionki CTF nie ma z tym problemu abym sobie jakieś inne zapodawał do stringa?

Przewiduję oczywiście po agarnięciu 1 lev udostępnić wam efekt mojej pracy, a idzie bardzo dobrze, zdecydowana większość animacji i grafik jest już gotowa. Aseprite świetnie się spisuje w tej kwestii.
Dziękuje serdecznie za słowa pomocy.
Pozdrawiam
Temporal - 02-01-2019, 15:37
:
Gdy Google translator wchodzi za mocno :)
jaxoo22 - 02-01-2019, 15:43
:
Temporal napisał/a:
Gdy Google translator wchodzi za mocno


znaczy się piszę jak potłuczony?
jarlfenrir - 08-01-2019, 10:59
: Temat postu: Re: dialogi w pliku INI + opcja wyboru dialogu
jaxoo22 napisał/a:

-Bardzo ważne jest aby dialogi wpadały z pliku ini +++, oczywiście nie chce żeby mi ktoś z dialogów spojlerował sobie gre.

Jedno kłóci się z drugim. Ini jest plaintextem, więc ciężko je zabezpieczyć przed wścibskim użytkownikiem.

Jeśli INI, to ja bym pewnie spróbował taką strukturę:

Kod:

[nazwa dialogu w grze]
msg=wiadomość do pokazania
answer1=możliwa odpowiedź gracza
answer1next=nazwa kolejnego dialogu do wyświetlenia
answer2=możliwa odpowiedź gracza
answer2next=nazwa kolejnego dialogu do wyświetlenia

Gra zna jakieś słowo kluczowe dialogu, który ma wyświetlić. Ustawiasz ini na grupę o nazwie pasującej do tego słowa kluczowego. Potem String mający wyświetlić wiadomość pobierasz z pola msg, a odpowiedzi do wyboru z pól answer1, answer2 (i może z kolejnych, jeśli są). Potem jeśli gracz wybrał jakąś odpowiedź, musisz wczytać kolejny dialog o słowie kluczowym odczytanym z pola:
"answer"+str$(numerWybranejOdpowiedzi)+"next"
Dialog możesz przerwać, jeśli jako nastepny dialog wczytasz jakieś charakterystyczne słowo kluczowe, np "end_dialog".

Co do czcionki, kiedyś był taki problem, że jak gracz nie posiadał twojej czcionki, to u niego się nie wyświetlała poprawnie. Może teraz da się już osadzić czcionkę w obiekcie String?
Cootje - 12-02-2019, 21:10
:
Nie polecam INI++ bo jest zabugowany i nie działa dobrze z pętlami oraz zachowaniami. Zwykły INI object wystarcza w zupełności przy odrobinie fantazji.
creesee - 14-02-2019, 16:12
:
Zamiast ini można skorzystać z suchego tekstu podzielonego jakimś znakiem specjalnym, który nie będzie wykorzystywany w żadnej linii dialogowej + dowolny string tokenizer/parser. Tutaj znakiem specjalnym jest: " ^ "


Kod:
kto_mówi ^ co_mówi ^ ew. opcje_do_wyboru_id


...i w tym przypadku opcje do wyboru musiałyby być podzielone na grupy:
id = 1: tak/nie
id = 2: tak/nie/nie wiem
itp.

Mniej zretardziałym pomysłem jest po prostu dodawanie kolejnych opcji do wyboru, również predefiniowanych, do całego ciągu, a później sprawdzanie ile tych opcji jest, czyli:


Kod:

id_wypowiedzi ^ kto_mówi ^ co_mówi ^ 1_wybor ^ 1_wybor_przenosi_do_wypowiedzi_id
id_wypowiedzi ^ kto_mówi ^ co_mówi
id_wypowiedzi ^ kto_mówi ^ co_mówi ^ 1_wybor ^ 1_wybor_przenosi_do_wypowiedzi_id ^ 2_wybor ^ 2_wybor_przenosi_do_wypowiedzi_id
id_wypowiedzi ^ kto_mówi ^ co_mówi ^ 1_wybor ^ 1_wybor_przenosi_do_wypowiedzi_id ^ 2_wybor ^ 2_wybor_przenosi_do_wypowiedzi_id ^ 3_wybor ^ 3_wybor_przenosi_do_wypowiedzi_id


...na przykład:


Kod:

1 ^ Miły pan obok Biedry ^ Szefie, poratujesz 2 zeta? ^ Jak najbardziej ^ 2 ^ Niestety mam przy sobie tylko dolary ^ 3
2 ^ Miły pan obok Biedry ^ Ahh, dziękuję bardzo! Ależ się dzisiaj naje.. - najem! Najem się jak księciuniu! ^ [Koniec] ^ 0
3 ^ Miły pan obok Biedry ^ A to spadaj na drzewo bambusie. ^ [Koniec] ^ 0

4 ^ Kasjerka w Biedrze ^ Będę winna grosika. ^ Doooobra tam, nie ma sprawy ^ 5 ^ Chyba śnisz. Dawaj hajs. ^ 6
5 ^ Kasjerka w Biedrze ^ Miłego dnia! : ) ^ [Koniec] ^ 0
6 ^ Kasjerka w Biedrze ^ * wyciąga z portfela ostatnie oszczędności* Pr... proszę... to moje ostatnie oszczędności. ^ I żeby mi to było ostatni raz! ^ 7
7 ^ Kasjerka w Biedrze ^ Tak, Panie! ^ [Koniec] ^ 0