Kamera po dialogu stoi w miejscu. 2479 5

O temacie

Autor Lobos

Zaczęty 13.10.2016 roku

Wyświetleń 2479

Odpowiedzi 5

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Mam taki skrypt gdzie NPC prowadzi nas do WP. Nie zrobiłem tego za pomocą rutyny bo tak też powinno działać. Problem w tym że gdy dialog się kończy to pc_hero z npc udają się do WP a kamera stoi w miejscu i przenosi do bohatera dopiero gdy obydwaj dojdą na miejsce. Gdzie tu jest błąd ?

FUNC VOID DIA_Aron_Yao_Tak()
{
var C_ITEM heroArmor; heroArmor = Npc_GetEquippedArmor(other);

    AI_Output (other, self ,"DIA_Aron_Yao_Tak_15_01"); //Oto on
    B_GiveInvItems (other, self, Itwr_Wascar_Raport, 1);
    B_UseFakeScroll ();
B_GiveInvItems (self, other, Itwr_Wascar_Raport_Open, 1);

    AI_Output (self, other ,"DIA_Aron_Yao_Tak_03_02"); //Hmm.. rozumiem
    AI_Output (self, other ,"DIA_Aron_Yao_Tak_03_03"); //Znam Wascara, można mu zaufać. Wygląda na to że miał o tobie spore mniemanie, innaczej nie powierzył by ci takiego dokumentu.
if (Hlp_IsItem (heroArmor, itar_prisoner) == TRUE)
{
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_04"); //Odprowadze cię do nadzorcy. Za mną !

}
else
{
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_05"); //Tylko ubierz spodnie zanim z nim porozmawiasz
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_06"); //Odprowadze cię do nadzorcy. Za mną !

};
AI_StopProcessInfos (self);
AI_SetWalkmode (PC_hero, NPC_RUN);
AI_SetWalkmode (SLD_3231_Aron, NPC_RUN);
AI_GotoWP(PC_hero,"KP_PATH_08");
AI_GotoWP(SLD_3231_Aron,"KP_PATH_08");


};



Cały skrypt //========================================
//-----------------> Ardalion
//========================================

INSTANCE DIA_Aron_Yao (C_INFO)
{
   npc          = SLD_3231_Aron;
   nr           = 9;
   condition    = DIA_Aron_Yao_Condition;
   information  = DIA_Aron_Yao_Info;
   permanent = FALSE;
   Important    = FALSE;
   description = "Mam tu raport adresowany do nadzorcy Ardaliona";
};

FUNC INT DIA_Aron_Yao_Condition()
{
    if (Npc_KnowsInfo (other, DIA_Aron_HELLO1))
&& (!Npc_KnowsInfo (other, DIA_Ardalion_Hello1))  // dialog powitalny z ardalion
    {
return TRUE;
    };
};


FUNC VOID DIA_Aron_Yao_INFO()
{
    AI_Output (other, self ,"DIA_Aron_Yao_15_01"); //Mam tu raport adresowany do nadzorcy Ardaliona
    AI_Output (self, other ,"DIA_Aron_Yao_03_02"); //Do Ardaliona ? jak to ?
    AI_Output (other, self ,"DIA_Aron_Yao_15_03"); //Przybyłem tu z Wascarem, polecił mi zobaczyć się z Ardalionem i wręczyć mu raport.
    AI_Output (self, other ,"DIA_Aron_Yao_03_04"); //Pokaż mi ten raport

   
    Info_AddChoice (DIA_Aron_Yao, "Oto on", DIA_Aron_Yao_Tak);
    Info_AddChoice (DIA_Aron_Yao, "Wybacz ale oddam go tylko do rąk Ardaliona", DIA_Aron_Yao_Nie);
};

FUNC VOID DIA_Aron_Yao_Tak()
{
var C_ITEM heroArmor; heroArmor = Npc_GetEquippedArmor(other);

    AI_Output (other, self ,"DIA_Aron_Yao_Tak_15_01"); //Oto on
    B_GiveInvItems (other, self, Itwr_Wascar_Raport, 1);
    B_UseFakeScroll ();
B_GiveInvItems (self, other, Itwr_Wascar_Raport_Open, 1);

    AI_Output (self, other ,"DIA_Aron_Yao_Tak_03_02"); //Hmm.. rozumiem
    AI_Output (self, other ,"DIA_Aron_Yao_Tak_03_03"); //Znam Wascara, można mu zaufać. Wygląda na to że miał o tobie spore mniemanie, innaczej nie powierzył by ci takiego dokumentu.
if (Hlp_IsItem (heroArmor, itar_prisoner) == TRUE)
{
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_04"); //Odprowadze cię do nadzorcy. Za mną !

}
else
{
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_05"); //Tylko ubierz spodnie zanim z nim porozmawiasz
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_06"); //Odprowadze cię do nadzorcy. Za mną !

};
AI_StopProcessInfos (self);
AI_SetWalkmode (PC_hero, NPC_RUN);
AI_SetWalkmode (SLD_3231_Aron, NPC_RUN);
AI_GotoWP(PC_hero,"KP_PATH_08");
AI_GotoWP(SLD_3231_Aron,"KP_PATH_08");


};

FUNC VOID DIA_Aron_Yao_Nie()
{
var C_ITEM heroArmor; heroArmor = Npc_GetEquippedArmor(other);

    AI_Output (other, self ,"DIA_Aron_Yao_Nie_15_01"); //Wybacz ale oddam go tylko do rąk Ardaliona
    AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_02"); //Dla ciebie jest to nadzorca Ardalion, czy to jasne ?
    AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_03"); //Jeśli mnie okłamałeś napewno zaraz odczujesz to na swojej skórze.
    B_GivePlayerXP (100);
if (Hlp_IsItem (heroArmor, itar_prisoner) == TRUE)
{
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_04"); //Odprowadze cię do niego. Za mną !

}
else
{
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_05"); //Tylko ubierz spodnie zanim z nim porozmawiasz
AI_Output (self, other ,"DIA_Aron_Yao_Nie_03_06"); //Odprowadze cię do niego. Za mną !

};
AI_StopProcessInfos (self);
AI_SetWalkmode (PC_hero, NPC_RUN);
AI_SetWalkmode (SLD_3231_Aron, NPC_RUN);
AI_GotoWP(PC_hero,"KP_PATH_08");
AI_GotoWP(SLD_3231_Aron,"KP_PATH_08");



};
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Błąd polega na tym, że nie zależnie jak to zrobisz to funkcje wywołują się  w tym samym czasie. Czyli, Kończysz dialog i przerywasz kończenie dialogu poprzez AI_GotoWP. Spróbuj dać B_ClearAIQueue (nie pamiętam jak się nazywa dokładnie) zaraz po AI_StopProcessInfos.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Po zrobieniu tak jak mówisz, faktycznie kamera się ruszyła ale teraz ucina końcówke dialogu
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
1. Rutyna (albo set npc to state).
2. Tick tock / Framefunctions i funkcja odpalana 2 sekundy po dialogu.

Innego sposobu nie widzę.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Lub AI_Functions :ok:
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Próbowałem triggerem bo nie bardzo jeszcze pojąłem tego tick tocka ale funkcja się nie wywoływała, rutyną by to poszło może ale bohater stał by w miejscu bo jemu sie jej nie da odpalić, przynajmniej tak mi się wydaje. Ikarusem nic nie działam bo nie chce później crashy w modzie.

Problem rozwiązany, uciołem dialog i dodałem nowy bo tak nawet lepiej pasowało.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry