World of Gothic Archiv > NWN-Hilfe
Brauche Hilfe bei Script
Seite 1 von 1  1 
05.08.2002, 20:24 #1
Ta'idan
Beiträge: 152
Brauche Hilfe bei Script
Also ich frage mich warum dieses Script nicht funktioniert...
Das obere klappt ja aber die else Anweisung tut nix :(
Da sollte der NPC wenn er auf einem Stuhl sitzt und durch Random(3) eine 1 rauskomt zu einem Wegpunkt laufen und durch zufall einen der Sätze sagen... das tut er aber nich :( WARUM???
Hier das Script :
code\:

void main()
{
if (!GetIsInCombat() && !IsInConversation(OBJECT_SELF)) // Kontrolle ob NPC nicht in Kampf oder Gespaerch
if (GetCurrentAction() != ACTION_SIT) // Kontrolle ob NPC nicht schon sitzt
{
ClearAllActions();
int i = 1;
object oChair = GetNearestObjectByTag("sitobj", OBJECT_SELF,i);
int bFoundChair = FALSE;
while (bFoundChair == FALSE && GetIsObjectValid(oChair) == TRUE)
{
if (GetIsObjectValid(GetSittingCreature(oChair)) == FALSE)
{
bFoundChair = TRUE;
ActionSit(oChair);
}
else
{
i++;
oChair = GetNearestObjectByTag("sitobj", OBJECT_SELF,i);
}
}
if (bFoundChair == FALSE)
{
ClearAllActions();
ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD);
ActionRandomWalk();
}
}
else
{
int irandom;
irandom = Random(3);
if(irandom=='1')
{
object oSchankwirt = GetObjectByTag("WP_schankwirt");
ActionMoveToObject(oSchankwirt, FALSE);
int igetraenk;
igetraenk = Random(4);
switch(igetraenk)
{
case 0:
ActionSpeakString("Satz1");
break;
case 1:
ActionSpeakString("Satz2");
break;
case 2:
ActionSpeakString("Satz3");
break;
case 3:
ActionSpeakString("Satz4");
break;
}
}
}
}

05.08.2002, 20:36 #2
GuradonHellsing
Beiträge: 232

machmaln assigncommand bei actionmoveto
05.08.2002, 21:07 #3
Ta'idan
Beiträge: 152

Ok... werds mal ausprobieren.
Ansonnsten is das Script aber richtig? Habe den oberen Teil oberen Teil hier ausm Forum... alles ab else ist Marke Eigenbau :)

Muss man immer AssignCommand benutzen oder bewirkt das nur was anderes?
05.08.2002, 21:57 #4
GuradonHellsing
Beiträge: 232

mh nunja bei action funktionen würde ich immer assigncommand verwenden,wobei man es auch teilweise weglassen kann glaube ich nur
1.Bleibt das ganze einhaltlich
2.Ist das ganze auch verständlicher wer was tuen soll für jemanden der nicht weis was das script bewirken soll
( AssignCommand: das Object so und so tut das und das)
06.08.2002, 12:15 #5
Ta'idan
Beiträge: 152

Alsoo... es geht immernoch nich :(

Er führt die IF einweiung zwar aus und macht soweit glaube ich alles richtig, habe in die IF einweisung einfach me nen Speakstring reingesetzt das er dann sagt das er jetzt eigentlich aufstehen müsste :)
Das macht er auch brav aber er bleibt einfach sitzen :(
Muss man dem NPC vielleicht erst sagen das er vorher aufstehen muss?
06.08.2002, 12:23 #6
GuradonHellsing
Beiträge: 232

setz ma über dem actionmoveto
ein clearallactions()
06.08.2002, 13:37 #7
Ta'idan
Beiträge: 152

Jo danke... jetzt gehts :)
Dann hab ich noch ne kleine Frage...
Manche NPCs gucken in ne völlig falsche Richtung wenn sie sich auf einen Stuhl setzen :) Kann man die irgendwie ausrichten!?

Und es wäre auch nicht schlecht wenn sie nicht aufstehen wenn der Spieler sie anspricht...
06.08.2002, 21:16 #8
palme
Beiträge: 466

Bei einer Bank half es als ich die Bank drehte....

Mit dem anreden aheb ich auch noch Probleme...
Seite 1 von 1  1