Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Misiak

Strony: [1]
1
Nie pomogło, a w podstawce była w ogóle taka sytuacja, że jakiś npc po dialogu z nami umiera?
EDIT: Pomogłem sobie inaczej, po filmiku zamiast śmierci postaci dałem, że zapada w głęboki sen i teraz wszystko działa. Temat można zamknąć.

2
Obojętnie, w którym miejscu dam te AI_STOP... to mój bohater dalej jest zbugowany po śmierci NPC. Nie może się ruszać, a jak włącze ekwipunek i później go wyłącze to da się chodzić co prawda, ale znika pasek życia, a nie o to mi chodziło.

3
To, co zaproponował Pan Rafał nic nie zmieniło, kompletnie nic. Zamiana tych linijek nie dała zmian.

EDIT: Zaraz zobacze, co i jak, i dam ci znać.

EDIT2: Już prawie wszystko jest wspaniale! Jest tylko jeden błąd, który niestety niszczy całą grę, po śmierci NPC dialog się nie wyłącza :( Dlaczego to tak dziwnie działa?

4
Witam mam mały problem z moim pierwszym modem, który ma mnie trochę podszkolić w moddingu. Mianowicie NPC w ogóle nie reagują na opcję important, tzn. mam 6 stworzonych NPC i każdego muszę sam zagadać, gdyż jak zmienię im wartość important na TRUE(1) dialog w ogóle się nie zaczyna i postać stoi jak słup. Teraz druga sprawa, zrobiłem sobie przerywnik filmowy, który ma się pojawiać po określonych słowach, a po filmiku NPC ma umrzeć. Niestety filmik zaczyna się od razu po wybraniu dialogu, a po filmiku postać umiera co prawda, ale dialog się nie kończy i bez użycia kodów nie można go opuścić. Tak wygląda skrypt:

//========================================
//-----------------> HELLO5
//========================================

INSTANCE DIA_Szymek_HELLO5 (C_INFO)
{
   npc          = KDF_1669_Szymek;
   nr           = 5;
   condition    = DIA_Szymek_HELLO5_Condition;
   information  = DIA_Szymek_HELLO5_Info;
   permanent = FALSE;
   description = "Co się z tobą dzieje?";
};

FUNC INT DIA_Szymek_HELLO5_Condition()
{
    if (Npc_KnowsInfo (other, DIA_Szymek_HELLO4))
    {
    return TRUE;
    };
};


FUNC VOID DIA_Szymek_HELLO5_Info()
{
AI_Output (other, self ,"DIA_Szymek_HELLO5_03_01"); //Co się z tobą dzieje?
AI_Output (self, other ,"DIA_Szymek_HELLO5_03_02"); //Ten ból??!!!! Czy to...TOMASZ?! Nieeee....
B_LogEntry                     (PL_Hubert,"Co się stało? Nie jestem do końca pewien. Potęga fragmentu księgi zabiła maga Szymka! Nieliczne informacje, które zapamiętałem  muszą teraz zostać przekazane Hubertowi.");
PlayVideo ( "Szymek.bik" );
self.attribute[ATR_HITPOINTS] -=self.attribute[ATR_HITPOINTS];
    AI_StopProcessInfos (self);
};

I teraz sprawy mają się tak, proszę kogoś, by przerobił to w ten sposób, że NPC sam do mnie zagaduje, odbywa się ten dialog, pojawia się wpis do dziennika, rozpoczyna się przerywnik filmowy, a po nim NPC umiera i wyłącza się dialog. Można tak w ogóle zrobić?

5
Dokładnie tak, już wszystko działa jak należy. Dodałem if zamiast && i teraz druga opcja dialogowa jest dostępna tylko w dobrym waypoincie. Dziękuję wszystkim za pomoc, a temat już można zamknąć.

6
No już coraz lepiej nam idzie. Po dodaniu tej linijki od użytkownika wyżej, drugi dialog nie jest dostępny od samego początku. Teraz nie jest wcale dostępny. Co można, by jeszcze dodać, żeby teraz dialog był dostępny w tym waypoincie?

7
Błędów nie było, ale efektów też żadnych. Nadal opcja "I co teraz?" pojawia się od samego początku gry.

8
Kilka dni temu zacząłem tworzyć małego moda, by się trochę poduczyć moddingu, lecz dzisiaj trafiłem na małą zaporę i nie potrafię sobie z nią poradzić. Mianowinie stworzyłem 2 dialogi do jednego NPC. Dobra, pierwszy miał działać bez żadnego warunku, tzn. podchodzę do postaci i po prostu z nią gadam. Po owym dialogu ruszamy z NPC do jego domy i tu właśnie zaczyna się problem. Napisałem warunek, że drugi dialog ma stać się dopiero dostępny, gdy będę w pobliżu danego waypointu, czyli w tym przypadku domu NPC. Niestety dialog jest dostępny od początku gry razem z tym pierwszym. Co zrobić, by drugi dialog nie pojawiał się w spisie do czasu, aż dojdę z postacią do jego domu? Tu macie trochę kodu:

//========================================
//-----------------> siema2
//========================================

INSTANCE DIA_Lukasz_siema2 (C_INFO)
{
   npc          = VLK_1667_Lukasz;
   nr           = 2;
   condition    = DIA_Lukasz_siema2_Condition;
   information  = DIA_Lukasz_siema2_Info;
   permanent   = FALSE;
   description  = "I co teraz?";
};

FUNC INT DIA_Lukasz_siema2_Condition()
{
    return TRUE;
};


FUNC VOID DIA_Lukasz_siema2_Info()
{
    if (Npc_GetDistToWP(hero, "OCR_HUT_Z5") > 1500)
{   B_LogEntry(CH1_Droga,"Dotarliśmy do miejsca zamieszkania Lukasza. Nigdy nie myślałem, że będę współpracował ze zwykłym kopaczem. Czas pokaże, czy słusznie wybrałem pomagając mu.");
   Log_SetTopicStatus(CH1_Droga,LOG_SUCCESS);  
   
   B_GiveXP (100);
   
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_09"); //Dobra jesteśmy na miejscu. Jak ci się podoba moje mieszkanie?
    AI_Output (other, self ,"DIA_Lukasz_siema2_15_10"); //Nie wierzę, że to wszystko jest twoje. Pewnie nikt nawet nie wie, że tu śpisz.
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_11"); //Rozgryzłeś mnie, to wcale nie jest moje, ale mniejsza z tym. W końcu przyszedłeś tu w konkretnej sprawie.
    AI_Output (other, self ,"DIA_Lukasz_siema2_15_12"); //Właśnie, kto w obozie może chcieć mojej śmierci? Nikt jeszcze mnie tu nie zna.
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_13"); //Nie musi cię znać, by chcieć zabić, ale zacznijmy od samego początku. Przed powstaniem bariery zamieszkiwałem wyspę zwaną Khorinis.
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_18"); //Jest to małe miasto portowe zamieszkiwane przez wpływowych ludzi, ale też przez złoczyńców.
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_19"); //W nim właśnie spotkałem Tomasza, który teraz może chcieć cię zabić.
    AI_Output (other, self ,"DIA_Lukasz_siema2_15_20"); //Tomasz? Nie znam takiej osoby, więc dlaczego on może chcieć mnie zabić.
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_21"); //Problem tej istoty tkwi w tym, że pewnej nocy zabił swojego ojca w niekontrolowanym gniewie. Od tego czasu dzieją się z nim dziwne rzeczy.
    AI_Output (other, self ,"DIA_Lukasz_siema2_15_22"); //Dziwne rzeczy? Co masz na myśli?
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_23"); //Od tamtego dnia każde złe słowo skierowane w jego kierunku zamienia się w krwawą rzeź. Tu nie chodzi tylko o twój los, ale też całego obozu!
    AI_Output (other, self ,"DIA_Lukasz_siema2_15_24"); //Skoro sprawia tyle problemów, dlaczego po prostu strażnicy się go nie pozbędą?
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_25"); //Nie mogą. Tomasz dostał gwarancję od Gomeza, że nie może zostać zaatakowany znienacka, inaczej strażnicy muszą zabić atakującego.
    AI_Output (other, self ,"DIA_Lukasz_siema2_15_26"); //Chcesz, żebym się poświęcił?!
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_27"); //Nie, źle mnie zrozumiałeś. Tomek może zginąć tylko w honorowej walce na arenie.
    AI_Output (self, other ,"DIA_Lukasz_siema2_03_28"); //Twoje pierwsze zadanie polega na odwiedzeniu areny i pokonaniu niejakiego Huberta. Jego miecz może się nam przydać w  walce z Tomusiem.
   

    Info_ClearChoices   (DIA_Lukasz_siema2);
    Info_AddChoice      (DIA_Lukasz_siema2, "Niech się stanie, co musi. Wyruszę na arenę, by zdobyć miecz Huberta, który pomoże mi zniszczyć  prześladowcę.", DIA_Lukasz_siema2_zgoda2);
    Info_AddChoice      (DIA_Lukasz_siema2, "Sam sobie idź po ten miecz, nie jestem tu od wykonywania twoich marnych poleceń.", DIA_Lukasz_siema2_rezygnacja2); };
};

FUNC VOID DIA_Lukasz_siema2_zgoda2()
{
    AI_Output (other, self ,"DIA_Lukasz_siema2_zgoda2_15_01"); //Niech się stanie, co musi. Wyruszę na arenę, by zdobyć miecz Huberta, który pomoże mi zniszczyć  prześladowcę.  
    Log_CreateTopic(PL_Hubert,LOG_MISSION);
    Log_SetTopicStatus(PL_Hubert,LOG_RUNNING);
    B_LogEntry(PL_Hubert,"Lukasz opowiedział mi historię Tomasza. Postanowiłem mu pomóc w walce z tym obłąkańcem. Pierwszym krokiem do zwycięstwa jest zdobycie oręża od niejakiego Huberta poprzez walkę na arenie.");
    AI_Output (self, other ,"DIA_Lukasz_siema2_zgoda2_03_02"); //Dobrze, będę trzymał za ciebie kciuki. Gdy wrócisz opowiem ci coś więcej o sobie i tej całej sprawie.
   Npc_ExchangeRoutine (self, "domek");
    AI_StopProcessInfos   (self);
};

FUNC VOID DIA_Lukasz_siema2_rezygnacja2()
{
    AI_Output (other, self ,"DIA_Lukasz_siema2_rezygnacja2_15_01"); //Sam sobie idź po ten miecz, nie jestem tu od wykonywania twoich marnych poleceń.
    AI_Output (self, other ,"DIA_Lukasz_siema2_rezygnacja2_03_02"); //Zawiodłem się na tobie, ale skoro sprawy tak się mają, jestem zmuszony się ciebie pozbyć, byś nie rozprzestrzeniał tej historii.
    AI_StopProcessInfos   (self);
    Npc_SetPermAttitude (self, ATT_HOSTILE);
    Npc_SetTarget (self, other);
    AI_StartState (self, ZS_ATTACK, 1, "");
};

Strony: [1]
Do góry