Inhaltsverzeichnis

Startdialog

(von Fizzban)

Um ein paar Zeilen einzufügen, die gesagt werden, direkt nachdem du einen NSC angesprochen hast (also bevor der Multiple-Choice-Kasten aufgeht), einfach ein wichtiges Info-Objekt einfügen und in die Bedingung hero.aivar[AIV_INVINCIBLE] einbauen:

var int DIA_Hans_Einleitung_Abgespielt;

...

FUNC VOID DIA_Hans_Exit_Info()
{
        DIA_Hans_Einleitung_Abgespielt = FALSE;
	AI_StopProcessInfos (self);
};

instance DIA_Hans_Hello (C_INFO)
{
	npc        	= Pers_666_Hans;
	condition   	= DIA_Hans_Hello_Condition;
	information 	= DIA_Hans_Hello_Info;
	important   	= TRUE;
	permanent  	= TRUE;
};

FUNC int DIA_Hans_Hello_Condition()
{
	if (hero.aivar[AIV_INVINCIBLE] && !DIA_Hans_Einleitung_Abgespielt && !hero.aivar[AIV_IMPORTANT])
	{
		return TRUE;
	};
};

FUNC int DIA_Hans_Hello_Info()
{
      // Dialog
      DIA_Hans_Einleitung_Abgespielt = TRUE;
};

Da hero.aivar[AIV_INVINCIBLE] nur dann wahr ist, wenn der SC mit jemanden spricht, wird dich der NSC niemals von sich aus ansprechen, obwohl das Objekt als wichtig markiert ist. Die Variable DIA_Hans_Einleitung_Abgespielt stellt sicher, dass wir uns nicht in einer Endlosschleife verfangen. Das ist allerdings unnötig, wenn das Info-Objekt nicht permanent ist.