Benutzer-Werkzeuge

Webseiten-Werkzeuge


Dies ist eine alte Version des Dokuments!


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_Hark_HelloReject_Condition()
{
      // 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.

EDIT by G1P:
Wenn mich nicht alles täuscht ist dort ein Fehler:
es muss nicht

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

sondern

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

heißen…

tipps_und_tricks/startdialog.1439928974.txt.gz · Zuletzt geändert: 2016/12/31 09:28 (Externe Bearbeitung)