World of Gothic Archiv
Alle Beiträge von Fantasyelf
Seite 1 von 2  1  2 
09.07.2002, 11:59 #1
Fantasyelf
Beiträge: 36
Wie teleportiere ich einen NPC in ein anderes Gebiet? - Wie teleportiere ich einen NPC in ein anderes Gebiet?
Ich will, das ich in einer Höhle einen NPC retten muß, der nach dem Gespräch der Rettung in ein anderes Gebiet gehen soll. Es soll aber so aussehen, das der NPC ein bißchen läuft und dann verschwindet.
09.07.2002, 12:15 #2
Fantasyelf
Beiträge: 36
Wie teleportiere ich einen NPC in ein anderes Gebiet? -
Ich würde das gerne machen wie das Quest(Bauernfrau aus Höhle retten) im 2.Kapitel. Die läuft ein bißchen und wird dann unsichtbar, wenn ich dann draußen bin steht sie schon da.
Wenn sie denn ganzen Weg (mit Hilfe von Waypoints) läuft, dauert das zu lange.
09.07.2002, 13:49 #3
Fantasyelf
Beiträge: 36
Wie teleportiere ich einen NPC in ein anderes Gebiet? -
Vielen Dank für Deine Hilfe.
10.07.2002, 20:18 #4
Fantasyelf
Beiträge: 36
Habe Probleme mit "SetCommandable()" ! - Habe Probleme mit "SetCommandable()" !
Wann setzt man "SetCommandable()" ein und wann "ActionDoCommand(SetCommandable())" ? Funktioniert das auch mit dem PC, weil ich dem PC sagen möchte, was er tun soll, und vom Player nicht dabei gestört werden soll ?
10.07.2002, 20:34 #5
Fantasyelf
Beiträge: 36
Habe Probleme mit "SetCommandable()" ! -
Ich möchte, das der Spieler am Anfang, wenn er den Auslöser betritt, etwas sagt und zwischendurch die Gegend untersucht, da er nicht weiß wo er ist. Sozusagen eine Sequenz in der Grafikengine, wo der Spieler nur zuguckt.

Und warum steht beim Leah-Quest hintereinander:
ActionDoCommand(SetCommandable(TRUE));
SetCommandable(FALSE);
10.07.2002, 22:57 #6
Fantasyelf
Beiträge: 36
Habe Probleme mit "SetCommandable()" ! -
Den PC kann man steuern, z.B. wenn er einen Auslöser betritt:

object oPC=GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC);
object oTruhe=GetObjectByTag("Chest");
ClearAllActions();
AssignCommand(oPC,ActionSpeakString("Wo bin ich?"));
AssignCommand(oPC,ActionMoveToObject(oTruhe,FALSE,1.0));
Assigncommand(oPC,ActionInteractObject(oTruhe));

Ich möchte aber, das er dabei vom Spieler nicht gestört wird, z.B. von einem Mausklick des Spielers an eine andere Position.
10.07.2002, 23:19 #7
Fantasyelf
Beiträge: 36
Habe Probleme mit "SetCommandable()" ! -
Es funktioniert. Danke für Deinen Tipp.

Jetzt kann ich sogenannte "Zwischensequenzen" in der Spielgrafik erstellen.

Bin gerade dabei, ein Dorf richtig lebendig wirken zu lassen.
z.B.:

- Leute gehen mittags in die Kneipe und abends wieder nach Hause
- die Wirtin verteilt Biere an ihre Gäste, die ein Bier fordern
- Leute gehen arbeiten
- usw.

Deshalb würde ich gerne wissen, was ganz genau fDistance und fDuration bei ActionForceMoveToObject bedeuten.
11.07.2002, 12:29 #8
Fantasyelf
Beiträge: 36
Habe Probleme mit "SetCommandable()" ! -
Na ja, dann werde ich mal die fDurations herausfinden müssen, damit die NPC's exakt den ganzen Weg laufen. Das könnte bei 10-20 Dorfbewohnern mit je 3-6 Wegen eine Weile dauern. Ich will gar nicht daran denken, wenn ich das für eine Stadt machen muß.
Aber wenn die NPC's mit ActionMoveToObject auch in Häuser rein oder raus gehen können, würde mir das sehr viel Zeit sparen.
11.07.2002, 12:44 #9
Fantasyelf
Beiträge: 36
Habe Probleme mit "SetCommandable()" ! -
Das ist gut, das erspart mir eine Menge Zeit. Damit rückt der Traum einer "lebenden" Stadt schon näher.
11.07.2002, 15:00 #10
Fantasyelf
Beiträge: 36
Wieso ist der Fackelhalter immer auf Activate? - Wieso ist der Fackelhalter immer auf Activate?
Ich möchte, das in einer Höhle einige Fackelhalter deaktiviert sind, damit der PC sie selbst anmachen muß. Die visuelle Umgebung steht auf "Innen dunkel". Im Editor habe ich die Fackelhalter auf Deactivate gestellt, im Spiel sind sie aber trotzdem aktiviert. Warum ist das so?
11.07.2002, 15:27 #11
Fantasyelf
Beiträge: 36
Wieso ist der Fackelhalter immer auf Activate? -
Ja, das habe ich. Ich kann sie ausmachen, wenn ich sie benutze. Die sollen aber am Anfang schon aus sein.
11.07.2002, 15:40 #12
Fantasyelf
Beiträge: 36
Wieso ist der Fackelhalter immer auf Activate? -
Es ist verständlich. Werde es heute abend mal ausprobieren.
12.07.2002, 09:52 #13
Fantasyelf
Beiträge: 36
Böses Monster wird Lieb :) -
Vielleicht geht es ja mit AdjustReputation().
12.07.2002, 10:12 #14
Fantasyelf
Beiträge: 36
Items zerstören im Ausrüstungsslot? - Items zerstören im Ausrüstungsslot?
Der PC soll am Anfang ohne jegliches Inventar anfangen. Deswegen müssen alle Gegenstände im Inventar zerstört werden (Er findet in einer Kiste einige Startgegenstände). Aber es will nicht funktionieren:

object oPC=GetNearestCreature(...);
object oItem=GetItemInSlot(INVENTORY_SLOT_ ..., oPC);

AssignCommand(oPC, DestroyObject(oItem));

PS: Wie kann man im Editor Objekte ohne 30xfaches Klicken auf die Rotationsbuttons exakt in die 4 Himmelsrichtungen ausrichten?
12.07.2002, 12:38 #15
Fantasyelf
Beiträge: 36
Items zerstören im Ausrüstungsslot? -
Das weiss ich auch, aber ich muß trotzdem viele Mal drauf klicken, damit die Objekte in eine Richtung gucken, die ich will (z.B. Ausrichtung exakt nach Norden).
Wenn ich die Buttons gedrückt halte, drehen sich die Objekte 3 mal oder mehr pro Sekunde im Kreis, das ist viel zu schnell für eine exakte Ausrichtung. Die Objekte müßten sich langsamer drehen, aber ich habe keine Option dafür gefunden.
12.07.2002, 15:23 #16
Fantasyelf
Beiträge: 36
Items zerstören im Ausrüstungsslot? -
Es klappt. Es steht zwar unten links da, das die Gegenstände zerstört werden, aber das kann man ja nicht ändern.
Nun muß ich bloß noch ActionUnequipItem(GetItemInSlot(INVENTORY_ ...)) auf die ausgerüsteten Gegenstände anwenden und der PC fängt ganz vorn vorn an, Items zu sammeln (ist für die Story sehr wichtig). Es gibt in der Nähe eine Truhe, die abhängig für jede Klasse, entsprechende Start-Items enthält. Eines stört aber noch, das immer wieder ein zufälliger Gegenstand mit drinnen ist.

Das Script wird über einen Auslöser ausgeführt, der die gleiche Position hat wie der Startpunkt.

PS: Die ausgerüsteten Items werden zwar ins Inventory abgelegt, aber nicht zerstört. Die bleiben einfach übrig. Alle anderen werden zerstört. Wieso?
12.07.2002, 16:51 #17
Fantasyelf
Beiträge: 36
Zufällige items in Truhen -
Mein Editor sagt: Bezeichner nicht definiert (GenerateHighTreasure). Fehlt mir irgendetwas?
12.07.2002, 18:22 #18
Fantasyelf
Beiträge: 36
Items zerstören im Ausrüstungsslot? -
Habe eine Lösung gefunden. Ist vielleicht ein bißchen lang, aber funktioniert:

//Ausgeruestete Gegenstaende ins Inventory legen und zerstoeren
oItem=GetItemInSlot(INVENTORY_SLOT_ARMS,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_ARROWS,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_BELT,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_BOLTS,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_BOOTS,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_BULLETS,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_CHEST,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_CLOAK,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_HEAD,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_LEFTRING,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_NECK,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
oItem=GetItemInSlot(INVENTORY_SLOT_RIGHTRING,oPC);
AssignCommand(oPC, ActionUnequipItem(oItem));
if (GetIsObjectValid(oItem)) DestroyObject(oItem);
14.07.2002, 17:13 #19
Fantasyelf
Beiträge: 36
Rubin für Tomi -
Ist Wanev noch für ein anderes Quest wichtig? Ich habe ihn zum Test mal gekillt und in der Nähe des Beschwörungsraumes einen Stein gefunden, der Wanevs Edelstein heißt. Ist das ein Zufall das es auch noch einen Stein gibt, der Setaras Edelstein heißt? Vielleicht gibt es ja noch mehr solche Edelsteine, und wenn man alle hat, passiert irgendetwas besonderes.
17.07.2002, 14:33 #20
Fantasyelf
Beiträge: 36
Eigene Klasse erstellen? - Eigene Klasse erstellen?
Ich möchte, das es in meiner Modulwelt eine oder mehrere neue Klasse(n) gibt, z.B:
- Satai
- Errish
- Quorrl
- Veden

Ist das möglich?
17.07.2002, 14:58 #21
Fantasyelf
Beiträge: 36
Eigene Klasse erstellen? -
Schade, die Enwor-Saga von Hohlbein würde sich auch lohnen, wenigstens teilweise auf PC übertragen zu werden. Für die komplette würde man alleine ja Jahre brauchen.
20.07.2002, 19:33 #22
Fantasyelf
Beiträge: 36
Traumsequenz -
Probiers mal mit:

AssignCommand(oPC,ClearAllActions());
AssignCommand(oPC,ActionDoCommand(SetCommandable(FALSE)));

... deine Sequenz ... (immer mit AssignCommand() arbeiten)

AssignCommand(oPC,ActionDoCommand(SetCommandable(TRUE)));


PS: Hatte mir mal Gawain15 geschrieben.
22.07.2002, 16:56 #23
Fantasyelf
Beiträge: 36
Traumsequenz -
Bei mir funktioniert es mit der Sequenz in der Spielgrafik. Der Spieler kann hinklicken wo er will, die Sequenz wird nicht abgebrochen.
Vielleicht kann man ja die Taste "h" im Skript irgendwie benutzen, damit die Menüleisten verschwinden.

Dem PC meines Moduls werden alle Sachen weggenommen (ist wichtig für die Story). Aber am Anfang gibt es eine Truhe, in der je nach Klasse, ein paar Gegenstände für den Anfang liegen.

PS: Man darf nur nicht die einzelnen Commands oben links wegklicken.
23.07.2002, 12:44 #24
Fantasyelf
Beiträge: 36
Traumsequenz -
Ich habe die angezogenen Items mit AssignCommand(oPC, ActionUnequipeItem(GetInventory ...)) ausgezogen und dann mit DestroyObject() zerstört. Als nächtes lasse ich dann das Inventory durchsuchen (GetFirstItem, GetNextItem) und dann werden auch die Items zerstört.
Ich muß das so machen, sonst bleiben die ausgezogenen Items erhalten.

Bin gerade in der Schule, deshalb kann ich jetzt nicht das Skript mit hinschreiben.
23.07.2002, 13:32 #25
Fantasyelf
Beiträge: 36
Brauche Hilfe bei if-else -
Du mußt nicht == TRUE hinschreiben, sondern folgendes reicht auch:
if GetIsPC(...)
{
... //wenn TRUE
}
else
{
... //wenn FALSE
}

PS: Funktioniert denn jetzt die TRAUMSEQUENZ?
Seite 1 von 2  1  2