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ć?