World of Gothic Archiv > NWN-Hilfe
Wer kennt sich hier mit dem Toolset gut aus? Bitte um Hilfe... zwei Fragen !
Seite 1 von 1  1 
14.08.2003, 11:17 #1
Aribeths Oma
Beiträge: 7
Wer kennt sich hier mit dem Toolset gut aus? Bitte um Hilfe... zwei Fragen !
Hallo Alle,

Wer kennt sich hier mit dem Toolset gut aus?

Ich bin gerade dabei ein eigenes Modul zu erstellen,
was auch für einen Neuling gut klappt, dennoch habe ich
ein paar Fragen, wer kann sie mir beantworten?

1.Ich hab ein Haus in einem von Monstern verseuchten Gebiet.
Dieses Haus soll vor den Monstern draußen Schutz bieten.
Jedoch ist es so, dass sobald ich das Haus als neues
Gebiet betrete, mir die Monster folgen.
Das soll aber nicht sein. Die Monster sollen draußen
bleiben. Wie geht das?


2. Bei den Dialogen.
Wie man einen Dialog erstellt weiß ich nun, klappt auch
alles. Jedoch hab ich das Problem, das wenn ich mit einer
Person geredet habe und alle Themen durchgesprochen habe,
ich sobald ich die Person erneut anspreche, WIEDER alle
Themen da sind, als hätte man zuvor nie mit der
Person gesprochen. Das soll nicht sein.
Es soll so sein, dass wenn ich die Figur ein zweites oder
Drittes mal anspreche ein anderer TExt kommt wie
"Lasst mich in Ruhe ich will schlafen".


Ok, das wären erstmal meine drängendsten Fragen, sicherlich
nicht die Einzigen. Ich wäre deshalb froh wenn mir jemand
weiterhilft, bzw. mir auch in Zukunft ab und zu mal weiterhelfen
kann.

Vielen Dank!
15.08.2003, 17:33 #2
Kardor
Beiträge: 523

Hallo Aribeths Oma! (lol :D)

Zu 1. : Man müsste statt einem normalen Gebietsübergang, einen Auslöser anlegen der nur den PlayerCharakter in das Haus teleportiert anlegen.

So geht das:

als 1.1 veränderst du bei der Inneren Tür den Gebietsübergang, die Tür anklicken, Reiter Gebietsübergang und dann machst du das Häkchen statt bei "Beide Richtungen" bei Aktuell zu Ziel, wobei du asl Ziel die Äussere Tür angibst.

Dann legst du in dem sicheren Haus, am besten direkt vor der Tür einen Wegpunkt an und gibts ihm das Kennzeichen "SICHER"

1.2 bei der Äusseren Tür sollte bei Gebietsübergang garnichts drin stehen, überprüfe das.

1.3 Füge bei der Äusseren Tür unter Skripte, im Slot OnOpen folgendes
Skript ein:
code\:

//Monster muessen draussen bleiben
//pc_door kommt ins OnOpen der Tuer
//15/08/03 by Kardor

void main()
{
//PC sei der der die Tuer zuletzt geoeffnet hat
object oPC = GetLastOpenedBy();

//oWP sei der Wegpunkt im Inneren des sicheren Hauses
object oWP = GetWaypointByTag("SICHER");

//falls oPC ein Spieler ist teleportiere ihn ins Innere
if(GetIsPC(oPC))
{
AssignCommand(oPC, JumpToObject(oWP));
}
}



1.4 Dann füge ebenfalls bei den Skripten der äusseren Tür unter OnHeartbeat folgendes kleine Skript ein:

code\:

//tuerzu
void main()
{

if(GetIsOpen(OBJECT_SELF))
{
ActionCloseDoor(OBJECT_SELF);
}

}




Zu 2. du musst am Ende der Dialogzeile, die als erstes gesagt werden soll eine Variable setzen und am Anfang der Dialogzeile die als zweites gesagt werden soll, eine Bedingung die abfragt, ob diese Variable gesetzt wurde.
Am sinnvollsten baust du deine Dialoge übrigens so auf, dass die Dialogzeile die als letztes gesagt werden soll im Dialogeditor ganz oben steht und die Dialogzeile die als erstes gesagt werden soll ganz unten.

Beispiel:

Dialog:

- Vielen Dank, dass Ihr die Monster besiegt habt! Ich muss jetzt schlafen.

- Bitte besiegt die Monster, damit ich endlich schlafen kann!



Ich hoffe, das war verständlich.

Die nachfolgenden zwei Skripte sind GENIAL, stammen aber nicht von mir sondern von einem Genie namens Lilac Soul.
Die Dinger sind deshalb so genial, weil du auf die Sache mit den Dialogen noch oft stossen wirst, diese Skripte kannst du für alle deine Dialoge verwenden, anstatt tausend neue anzulegen.

code\:

//Dieses kleine Skript kommt unter "Erfolgte Aktionen" am Ende
//der ersten Dialogzeile
//Written by Lilac Soul, aka Carsten Hjorthoj

void main()
{
object oPC=GetPCSpeaker();

string sTag=GetTag(OBJECT_SELF);

int nPrevious=GetLocalInt(oPC, sTag);

SetLocalInt(oPC, sTag, nPrevious+1);
}



das "Bedingungsskript":

code\:

//und dieses kleine Script kommt unter "Text Erscheint wenn"
//du brauchst fuer jedes mal, wenn ein neuer Dialog kommen
//soll ein neues Skript dieser Sorte
//by Lilac Soul

int StartingConditional()
{
object oPC=GetPCSpeaker();

string sTag=GetTag(OBJECT_SELF);

int nCount=GetLocalInt(oPC, sTag);

//aendere den Wert von nCount, je nachdem wann du willst
//dass diese Dialogzeile erscheint
//wenn du willst, dass der Text erscheint, wenn der NPC 0 mal
//angesprochen wurde auf 0, wenn er 1 mal angesprochen wurde auf 1
//zweimal angesprochen auf 2 usw.
return (nCount==0);

}



Wenn du etwas nicht verstanden hast, du noch Fragen hast einfach posten.


___________________________

Pilze Band I - das NWN Modul ;)
Niemand hat die Absicht eine Mauer zu baun. Außer uns!
[/font]
Seite 1 von 1  1