trurl3 Opublikowano 25 Grudnia 2010 Zgłoś Udostępnij Opublikowano 25 Grudnia 2010 Autor name='mea' date='25 01 2010 forum http://themodders.org Tu jest link do posta Kolejny tutek o stalku. Tym razem dialogi. Pliki, których będziemy używać: \config\gameplay\character_desc_escape.xml \config\gameplay\dialogs_escape.xml \config\gameplay\info_l01escape.xml Mówiąc szczerze, miałem duże wątpliwości, czy pisanie tego tutka ma jakikolwiek sens, gdyż to jest po prostu nieopisywalnie proste. No, ale dobra, zaczynamy. Będziemy pisali dialog dla Sidorowicza - bo on zaraz po starcie jest najbliżej, najłatwiej testować. Otwieramy character_desc_escape.xml. W zasadzie te okna z notatnikiem nie będzie sensu zamykać, w obu ciągle będzie się coś zmieniać. Ten escape_trader, którego widzimy od początku skryptu, to właśnie sidorowicz. Widzimy tu dużo wersów typu (pierdoły). Tu jest zapisane, które dialogi wyświetlają się u danego NPCa. Dodajmy linię: escape_trader_losowo Ja dodałem ją gdzieś w środku tych actor_dialog, ale myślę, że można to dodać gdziekolwiek, a i tak zadziała. Dobra, teraz otwieramy plik dialogs_escape.xml. Zaraz po Wstawiamy: Witaj LOSOWE.123Siema.Cześć.Witam. Teraz opis, co do czego. dialog id - "Nazwa" dialogu, której używamy do wstawienia go w plik character_desc_escape.xml; priority - Priorytet. Tutaj oznacza pozycję na liście w wyborze dialogu. Wybieramy dużą liczbę, jak to przykładowe 90, bo wybranie innej może nam zepsuć dialog, "zasłaniając" jakąś inną kwestię o tym samym priorytecie; phrase_id - ID frazy. Dzięki temu, że takie coś istnieje, możemy pisać jeden dialog na kilka sposobów; text - Logiczne; next - Jaka fraza jest następna. Wpisując to w odpowiedni sposób, uzyskamy inne wyniki, ale o tym dalej. Włączamy grę. Powinno - dzięki temu, że kilka "next" było w jednej frazie - wyświetlać nam losowo odpowiedzi 1,2, lub 3, poklikajcie kilka razy, a zauważycie. Uwaga - najpierw trzeba wziąć od Sidorowicza misję, dopiero potem dialogi są możliwe do wybrania. No, to dalej. Losowo już było, teraz będzie dialog, w którym osoby wypowiadają się więcej, niż jeden raz. Witaj KONKRETNE.1Siema.2Cześć.3Witam. Co się zmieniło? Przestawiłem NEXT tak, aby każdy był odnośnikiem do następnej frazy. Dzięki temu dialog działa tak, że na początku Sidorowicz mówi Siema, potem bohater Cześć, potem sidorowicz znowu, ale tym razem Witam. Oczywiście zmieniłem również priorytet, żeby dwa dialogi się nie gryzły, i zmieniłem ID - jeśli chcecie zobaczyć to w grze, musicie dopisać do character_desc_escape.xml: escape_trader_konkretnie Łatwe, proste, zrozumiałe. Dobra, następny przykład: Witaj Z WYBOREM.1Siema.23Cześć.Witam. Tutaj mamy dwa NEXT w frazie dalszej, niż 0 - więc będę miał wybór pomiędzy odpowiedzią 2 albo 3. Jak zwykle zmiana ID - dokleić do character_desc_escape nową linijkę! - i zmiana priorytetu. Parę ciekawostek: Informacje. Stalker ma całkiem ciekawie rozwiązane sprawdzanie, czy gracz dowiedział się o danej rzeczy, czy nie. Robią za to chyba tylko te trzy rzeczy: - sprawdza, czy gracz posiada daną informację; - sprawdza, czy gracz jeszcze nie posiada informacji; - dodaje informację dla gracza. Takie informacje dodajemy przez "info_portion id" w pliku info_l01escape.xml. Jak? Przykładowo, mam informację "wiedzapowszechna. Więc dodaję gdzieś pomiędzy innymi podobnymi liniami: I gotowe! Można już tego używać w swoich dialogach. Dla przykładu: W info_l01escape.xml dodajemy pod swoją linijkę - na przykład Teraz w dialogu KONKRETNIE, na samym początku frazy pierwszej, doklejamy . Powinno wyjść to tak: Witaj KONKRETNE.1 wiedzapowszechna Siema.2Cześć.3Witam. Teraz w dialogu LOSOWE doklejamy przed swoje - powinno wyjść: wiedzapowszechna Witaj LOSOWE.123Siema.Cześć.Witam. I gotowe! Po rozmowie KONKRETNIE pojawi się opcja dialogowa LOSOWE. Dalsza ciekawostka - jak dodać nóż i broń graczowi. escape_dialog.give_weapon_to_actorescape_dialog.give_knife_to_actor To chyba nie wymaga opisu? Wklejamy w któryś z testowych dialogów i sprawdzamy efekt. A może jednak wymaga. Znalazłem w Internecie, co można wsadzić w te : http-~~-//fr.pastebin.ca/445944 Jest to plik scripts/escape_dialog.script. Opiszę tutaj, jak go edytować: Przykładowo, mamy funkcję Trader. Po jej END, dopisujemy: function measkrypt(first_speaker, second_speaker) dialogs.relocate_item_section(first_speaker, "medkit", "in") dialogs.relocate_item_section(first_speaker, "bandage", "in") end W gruncie rzeczy nie rozumiem, co znacza first_speaker, ale dobra. medkit, bandage - to itemy. Można tam wsadzić sobie rakietnicę, granatnik, czy pistolecik z poprzedniego tutka. function measkrypt - to nazwa skryptu. Nazwałem go tak, Wy nazywajcie go jak chcecie. "in" - to stwierdza, że item jest dla nas, a nie od nas. Przeciwieństwo to oczywiście OUT. Teraz w swoim dialogs_escape, przykładowo w frazie 0 dialogu losowe, po TEXT dodajemy: escape_dialog.measkrypt escape_dialog jest konieczne, żeby pokazać, który to plik. measkrypt to nazwa naszego skryptu. Sprawdzamy w grze i cieszymy się Co jeszcze można tam dopisać, oprócz dialogs.relocate_item_section? Ano, kasę. Piszemy to tak: dialogs.relocate_money(npc, 500, "in") Bądź "out", żeby zapłacić - jak kto woli. SCREENY: PS: Z tego, co tu jest, da się już zrobić prosty quest, w którym idziesz od dawcy questa, wyciągasz informację od innego npca, mówisz ją dawcy i otrzymujesz nagrodę. Zrobiłem sobie taki, ale nie chce mi się go rozpisywać. Tu jest za to mój gamedata, gdzie wszystko ładnie widać: http://www.speedyshare.com/files/20549988/gamedata.rar Lub: http://hotfile.com/dl/25710284/011aba5/gamedata.rar.html Aha, w kwestii tej gry nie mam nic przeciwko zapychaniu mi PW pytaniami, o ile umiem, postaram się odpowiedzieć 1 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi