World of Gothic Archiv > NWN-Hilfe
"... kann nicht kompiliert werden." Hilfe!
Seite 1 von 1  1 
14.09.2002, 16:04 #1
Shirat
Beiträge: 511
"... kann nicht kompiliert werden." Hilfe!
Ich hab mir für mein Modul jetzt vorgenommen, für gewisse NPCs so eine Art simplen Tagesablauf zu programmieren. Dafür habe ich ins UserDefined-Skript folgendes reingeschrieben (ich hätte es auch ins onHeartBeat-Event reintun können, aber der Übersicht wegen hab ich das gelassen:

code\:

//::///////////////////////////////////////////////
//:: Default: On User Defined
//:: act_attkdummy
//:: Copyright (c) 2002 Shirat.
//:://////////////////////////////////////////////
/*
Determines the course of action to be taken
on a user defined event.
*/
//:://////////////////////////////////////////////
//:: Created By: Me
//:: Created On: September 14, 2002
//:://////////////////////////////////////////////
int nEvent = GetUserDefinedEventNumber(); //Art des Ereignisses abfragen
int nTime = GetTimeHour(); //Aktuelle Zeit in eine Variable
//speichern


void main()
{
if(nEvent == 1001)
{
if((nTime >= 6 ) && (nTime < 12)) //Wenn es zwischen 6 und 12 Uhr ist, dann...
{
RemoveEffect(OBJECT_SELF,GetFirstEffect(OBJECT_SELF)); //Alle Effekte aufheben
ActionRandomWalk(); //Zufllig herumlaufen
}

if((nTime >= 12) && (nTime < 18)); //Wenn es zwischen 12 und 18 Uhr ist, dann...
{
ActionAttack(GetNearestObjectByTag("CombatDummy")); //Das die naechstgelegene
//Uebungspuppe angreifen
}

if((nTime >= 18) || (nTime < 6)); //Wenn es zwischen 18 und 6 Uhr ist, dann...
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectSleep(),OBJECT_SELF); //Schlafen
}
}
} //UND WARUM KLAPPT DIESES VERDAMMTE SCRIPT NICHT!?



Das Problem bei der Sache ist jetzt, dass er mir beim kompilieren immer anzeigt: "Fehler. 'act_attkdummy' konnte nicht kompiliert werden." Dabei konnte ich darin keinen Fehler finden... :(


___________________________

Visit:
Martins Homepage[/font]
14.09.2002, 16:16 #2
Elessar
Beiträge: 495

Nach if-Bedingung nie einen Strichpunkt!
code\:

//::///////////////////////////////////////////////
//:: Default: On User Defined
//:: act_attkdummy
//:: Copyright (c) 2002 Shirat.
//:://////////////////////////////////////////////
/*
Determines the course of action to be taken
on a user defined event.
*/
//:://////////////////////////////////////////////
//:: Created By: Me
//:: Created On: September 14, 2002
//:://////////////////////////////////////////////
int nEvent = GetUserDefinedEventNumber(); //Art des Ereignisses abfragen
int nTime = GetTimeHour(); //Aktuelle Zeit in eine Variable
//speichern


void main()
{
if(nEvent == 1001)
{
if((nTime >= 6 ) && (nTime < 12)) //Wenn es zwischen 6 und 12 Uhr ist, dann...
{
RemoveEffect(OBJECT_SELF,GetFirstEffect(OBJECT_SELF)); //Alle Effekte aufheben
ActionRandomWalk(); //Zufllig herumlaufen
}

if((nTime >= 12) && (nTime < 18)) //Wenn es zwischen 12 und 18 Uhr ist, dann...
{
ActionAttack(GetNearestObjectByTag("CombatDummy")); //Das die naechstgelegene
//Uebungspuppe angreifen
}

if((nTime >= 18) || (nTime < 6)) //Wenn es zwischen 18 und 6 Uhr ist, dann...
{
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectSleep(),OBJECT_SELF); //Schlafen
}
}
} //UND WARUM KLAPPT DIESES VERDAMMTE SCRIPT NICHT!?


14.09.2002, 16:34 #3
Shirat
Beiträge: 511

Oh, scheiße! Da programmiert man zwei Jahre lang C/C++ und dann passiert einem so was! *mannomankommichmirjetztböldvor:D*
14.09.2002, 16:44 #4
GuradonHellsing
Beiträge: 232

mal ne ganz blöde frage:
warum kann das außerhalb der main funktion stehn???

int nEvent = GetUserDefinedEventNumber(); //Art des Ereignisses abfragen
int nTime = GetTimeHour(); //Aktuelle Zeit in eine Variable
//speichern

dacht bisher variablen kann man nur in einer funktion defenieren...
14.09.2002, 16:54 #5
Shirat
Beiträge: 511

Solche Sachen wie int (Abkürzung für Integer, Ganze Zahl) oder string (Zeichenkette) nennt man Variablen. Es gibt globale Variablen und lokale Variablen. Auf globale Variablen kann auf von jeder Funktion des Programms auf zugreifen, auf lokale Variablen nur von der jeweiligen Funktion aus. Da die meisten Skripte von NWN nur eine Funktion haben, ist es eigentlich egal.
14.09.2002, 20:23 #6
GuradonHellsing
Beiträge: 232

das beantwortet noch immer nicht meine frage
wie kann man außerhalb der main funktion(die ja die haupt funktion eines programmes bzw scriptes ist eine variable definieren????)
dachte bisher das sich so etwas nicht kompilieren lässt
15.09.2002, 07:55 #7
Elessar
Beiträge: 495

Eigentlich beantwortet es deine Frage schon... Wenn du die Variable innerhalb einer Funktion deklarierst, dann ist es eine lokale Variable und gilt nur gerade in dieser Funktion. Deklarierst du sie ausserhalb jeglicher Funktion, ist es eine globale Variable und kann in allen Funktionen innerhalb dieses Scripts abgefragt oder verändert werden...
15.09.2002, 09:44 #8
Rhaegar
Beiträge: 296

Jupp, du kannst ja in einem Skript nicht nur die Main deklarieren, sondern auch andere Funktionen.

Wenn du zum Beispiel folgendes hast:
code\:

void main()
{.....}
void Funktion2 ()
{......}
int Funktion3 ()
{....}



...dann kannst du auf Variablen die du am Anfang des Skriptes ausserhalb der Main deklarierst in jeder der drei Funktionen zugreifen...


___________________________

Verliebt in den UserDefined Event ^^
Überzeugter Episode 2 Hasser[/font]
Seite 1 von 1  1