Odwołanie przywołańca w formie dialogu 1711 1

O temacie

Autor lucki666

Zaczęty 16.06.2021 roku

Wyświetleń 1711

Odpowiedzi 1

lucki666

lucki666

Użytkownicy
posty133
Propsy65
ProfesjaSkrypter
  • Użytkownicy
Często się zdarza, że przypadkiem klikniemy na przywołanego sługę, a on ginie. Więc zrobiłem, aby po kliknięciu na niego uaktywniał się dialog. Wszystko wyświetla się prawie poprawnie. Można z dialogu wyjść bez problemu i kontynuować grę, ale gdy chce się go odwołać/zniszczyć to pojawia się problem. On ginie, ale kamera nadal jest ustawiona jak w przypadku dialogu i nie można wejść ESC do menu, ani kontynuować gry.

Skrypt:
Spoiler
///////////////////////////////////////////////////////////////////////
//   Summoned_Gobbo_Skeleton
///////////////////////////////////////////////////////////////////////
INSTANCE DIA_Addon_Summoned_Gobbo_Skeleton_EXIT   (C_INFO)
{
   npc         = Summoned_Gobbo_Skeleton;
   nr          = 1;
   condition   = DIA_Addon_Summoned_Gobbo_Skeleton_EXIT_Condition;
   information = DIA_Addon_Summoned_Gobbo_Skeleton_EXIT_Info;
   permanent   = TRUE;
   description = DIALOG_ENDE;
};
FUNC INT DIA_Addon_Summoned_Gobbo_Skeleton_EXIT_Condition()
{
   return TRUE;
};
FUNC VOID DIA_Addon_Summoned_Gobbo_Skeleton_EXIT_Info()
{
   AI_StopProcessInfos (self);
};

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
instance DIA_Addon_Summoned_Gobbo_Skeleton_End      (C_INFO)
{
   npc       =    Summoned_Gobbo_Skeleton;
   nr       =    2;
   condition    =    DIA_Addon_Summoned_Gobbo_Skeleton_End_Condition;
   information    =    DIA_Addon_Summoned_Gobbo_Skeleton_End_Info;
   permanent    =    TRUE;

   description    =    "Odwołaj przywołańca!";
};

func int DIA_Addon_Summoned_Gobbo_Skeleton_End_Condition ()
{
   return TRUE;
};

func void DIA_Addon_Summoned_Gobbo_Skeleton_End_Info ()
{
   AI_StopProcessInfos (self);
   B_KillNpc(Summoned_Gobbo_Skeleton);


};

Próba zmiany kolejności AI_StopProcessInfos (self); i B_KillNpc(Summoned_Gobbo_Skeleton); również nic nie dają.
Ale gdy zamienię AI_StopProcessInfos (self); na AI_StopProcessInfos (other); to już kamera prawidłowo reaguje, ale za to inne potwory nie atakują bohatera, zanim on nie zacznie dialogu z innym NPC.

Spoiler
instance DIA_Addon_Summoned_Gobbo_Skeleton_End      (C_INFO)
{
   npc       =    Summoned_Gobbo_Skeleton;
   nr       =    2;
   condition    =    DIA_Addon_Summoned_Gobbo_Skeleton_End_Condition;
   information    =    DIA_Addon_Summoned_Gobbo_Skeleton_End_Info;
   permanent    =    TRUE;

   description    =    "Odwołaj przywołańca!";
};

func int DIA_Addon_Summoned_Gobbo_Skeleton_End_Condition ()
{
   return TRUE;
};

func void DIA_Addon_Summoned_Gobbo_Skeleton_End_Info ()
{
   AI_StopProcessInfos (other);
   B_KillNpc(Summoned_Gobbo_Skeleton);

};

Jakieś pomysły jak to rozwiązać?
 

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
Jak dodasz to do drugiego sposobu to powinno działać.

B_ResetAll(other);
self.aivar[AIV_INVINCIBLE] = FALSE;
other.aivar[AIV_INVINCIBLE] = FALSE;
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!


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