[Editor1] Probleme

Aartong

Member
Registriert
26.05.2006
Beiträge
38
[Editor] Probleme

Hallo Leute,
Ich erstelle gerade ein Mdul und hätte einige Fragen.
Immer wenn ich Gebietsübergänge erstelle und sie teste komm ich plötzlich ganz woanders raus. Woran könnte das liegen?
Und noch eine Frage:
Wie kann ich während eines Gesprächs das Tagebuch aktualisieren?
 

Milena

Senior Member
Registriert
05.09.2003
Beiträge
180
Zuerst mal zum Gespräch: Du mußt erst mit dem Tagebucheditor einen Tagebucheintrag anlegen, dann kannst du im Gesprächseditor in der Gesprächszeile (linksklick darauf), bei der der Tagebucheintrag erfolgen soll, unter "Andere Aktionen" (unten rechts im Gesprächseditor zu finden) im Menüpunkt "Tagebuch" den gewünschten Tagebucheintrag aufrufen.


Wenn du einen Gebietsübergang erstellst (egal ob durch Trigger oder Tür) kommst du ja in ein Menü, wo du erstmal das Zielgebiet eingeben mußt, darunter Zielgebiet und Verbindungsart, und dann unter den verfügbaren Auslösern im gewünschten Gebiet wählen kannst. Vielleicht hast du im gewählten Gebiet mehrere mögliche Ankunftsorte und diesen keine unterschiedliche Kennzeichnung gegeben?
 

Sir Darian

Ritter des Helm
Registriert
01.04.2000
Beiträge
33.907
Hmmm... *grübel*

Ja, jeder Punkt für einen Gebietsübergang, sowie jede Türe sollte einen einmalig vorkommenden und auch aussagekräftigen Namen tragen wie zum Beispiel "StadttorOstZuWald".
Das macht das ganze auch für Dich transparenter und übersichtlicher. :)
 

Aartong

Member
Registriert
26.05.2006
Beiträge
38
Danke für eure Antworten Leute.
 
Zuletzt bearbeitet:

Sir Darian

Ritter des Helm
Registriert
01.04.2000
Beiträge
33.907
Hmmm... *grübel*

Gerne. ;)

Hoffentlich können wir Dir auch bei zukünftigen Problemen helfen.
 

Aartong

Member
Registriert
26.05.2006
Beiträge
38
Ich hätte gleich noch eine neue Frage.
Jetzt hab ich meinen Tagebucheintrag, aber jetzt weiss ich nicht wie ich das Gespräch verändere wen ich den Eintrag habe. Also die Belohnung bekomme und das die Frage erscheint: Habt ihr den Gegenstand.
Ich hoffe ich hab das gut genug formuliert. Ich freu mich auf eure Antworten.
 
Zuletzt bearbeitet:

Milena

Senior Member
Registriert
05.09.2003
Beiträge
180
Damit ein Gesprächsstrang nur unter bestimmten Bedingungen erscheint, mußt du bei der jeweiligen Antwort (wieder linksgeklickt) im Gesprächseditor unter "Text erschent, wenn" (wieder rechts unten im Editor zu finden) ein Skipt einfügen, das die jeweiligen Bedingungen abfragt.
Viele Bedingungen kannst du gleich automatisch abfragen lassen, indem du dort unten dann das kleine rote Hütchen anklickst und in den folgenden Menüs deine Einträge machst. Das Skript wird dann automatisch erstellt, du mußt ihm nur noch eine treffende Bezeichnung geben.
Weiß jetzt nicht mehr auswendig, ob man auch Tagebucheinträge automatisch abfragen kann. Wenn nicht, müßte das Skript ungefähr so aussehen (wobei das Wort tagebucheintrag durch die Bezeichnung deines Tagebucheintrags ersetzt werden müßte, und die Antwort im Beispielskript nur erscheint, wenn der Tagebucheintrag genau bei 1 wäre. Das müßte natürlich auch deinen Bedürfnissen angepaßt werden):


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

if (GetLocalInt(oPC, " NW_JOURNAL_ENTRYtagebucheintrag ") != 1) return FALSE;

return TRUE;
}


Die Belohnung kannst du dann in der jeweiligen Belohnungs-Gesprächszeile erstelllen, indem du sie linksklickst, dann "erfolgte Aktionen" (wie immer rechts unten) und danach das rote Hütchen klickst, das ein Menü öffnet, wo du deine Belohnung eintragen kannst. Das Skript wird wie oben beschrieben automatisch erstellt.
 
Zuletzt bearbeitet:

Aartong

Member
Registriert
26.05.2006
Beiträge
38
Danke.
Und hier kommt schon die nächste Frage:
Wie kann ich Portale als Gebietsverbiendungen nutzen?
 

Milena

Senior Member
Registriert
05.09.2003
Beiträge
180
Portale sind keine Gebietsübergänge sondern Objekte, du kannst daher keinen Gebietsübergang erstellen. Um ein Portal nutzbar zu machen, mußt du unter "Grundlagen" ein Häkchen bei benutzbar machen, und dann unter Skripte im OnUsed ein Skript einfügen, das den SC bei Benutzung des Portals an einen gewünschten Wegpunkt teleportiert.
 

Theron

Kampfmagier
Registriert
01.04.2000
Beiträge
4.526
Man könnte auch einfach einen kleinen Gebietsübergang unter dem Portal machen wenn einem Skripte und Programmieren usw. zu schwer sind.;)
 

Aartong

Member
Registriert
26.05.2006
Beiträge
38
Gut hier kommt die nächste Frage:
Wie lass ich Feinde gegeneinander kämpfen?
 

Theron

Kampfmagier
Registriert
01.04.2000
Beiträge
4.526
Indem man sie in verschiedene Fraktionen packt. Im Editor gibt es auch ein Fraktionstool.

Zum Beispiel gibt es Standardmäßig die Fratkionen "Spieler" und "Feindlich".

Feindlich kämpft halt gegen alle Fraktionen wie Spieler und "Verteidiger" usw., fast alle Monster sind standardmäßig in der feindlichen Fraktion.

Man kann eigene Fraktionen erstellen und einstellen, wie die Fraktionen auf andere reagieren.
Das geht über so ein Schieberegler, ob sie neutral, freundlich oder feindlich gesinnt sind.
 

Theron

Kampfmagier
Registriert
01.04.2000
Beiträge
4.526
Muss auch wieder so ein kompliziertes Skript sein, aber alles was nur annäherend mit Quellcode zu tun hat, da kann ich dir nicht helfen.:D
 

Milena

Senior Member
Registriert
05.09.2003
Beiträge
180
Das ist in der Tat komplizierter als die bisherigen Fragen.
Ohne Skriptkenntnisse wirst du da nicht weit kommen. Das Skript muß ins OnDamage der sich ergebenden Kreatur. Es muß sicherstellen, daß ab einer bestimmten Anzahl verbliebener Lebenspunkte der Kreatur erstmal sämtliche Kampfaktionen der am Kampf beteiligten Personen eingestellt werden. Den gerade draufschlagenden Gegner kriegst du mit : GetLastHostileActor();
Dann mußt du die hitpoints des Opfers feststellen, und klären, ob diese beim letzen Treffer unter einen bestimmten level gefallen sind (in meinem Beispiel, wenn sie halbiert sind):
int nMaxHP = GetMaxHitPoints(); /volleAnzahl feststellen
int nCurHP = GetCurrentHitPoints();//jetzige Anzahl
if (nCurHP < (nMaxHP / 2))//was passiert, wenn sie unter die Hälfte fallen

mit einem "ClearAll Actions" auf alle Kampfbeteiligten hören sie erstmal sofort auf zuzuschlagen (Beispielzeile):

AssignCommand(oAngreifer, ClearAllActions());

Aber damit das auch so bleibt, mußt du bei den Gegnern die Feindschaft beenden (Beispielzeile):

ClearPersonalReputation(oAngreifer, oOpfer);

Und damit es auch dem Spieler klar wird, kannst du dein Opfer ja noch eine Zeile sprechen lassen, z.B so:

AssignCommand(oOpfer, ActionSpeakString("Lasst ab von mir! Hilfe!"));

So hab ich`s jedenfalls gemacht, bin aber auch nicht der Superskripter ;). Aber da es gut funktioniert hat, kann es so falsch sicher nicht sein.
Falls du noch gar keine Skriptkenntnisse hast, würde ich dir empfehlen ein tutorial durchzuarbeiten, z.B:
http://www.mapsandmoreshop.de/nwn/CelowinsTutorium.pdf
 

Sir Darian

Ritter des Helm
Registriert
01.04.2000
Beiträge
33.907
Hmmm... *grübel*

@ Milena:

Wow, das Teil kannte ich noch gar nicht!
Vielen Dank für den Link! :):up:

@ Aartong:

So, jetzt hast Du eine deutsche Beschreibung. Zumindest eine umfangreiche Einführung. :)
Du hast geschrieben, Du seist erst Zwölf. Finde ich respektabel, sich in diesem Alter schon mit einer so komplexen Materie auseinanderzusetzen! :eek::up:
Wenn Du mit Deinem Modul weiterkommst, sag bitte Bescheid, ich denke, wir würden es alle gerne mal sehen. :)
 

Milena

Senior Member
Registriert
05.09.2003
Beiträge
180
@Pie:
Nichts zu danken :). Ich finde, Celowins Tutorial ist mit Abstand das beste, aber es verlangt auch eine Menge Mitarbeit, um die komplexen Skripte zu verstehen (obwohl sie wirklich sehr gut erklärt sind). Mir sind jedenfalls beim durchstudieren schon einige Lichter aufgegangen, obwohl ich nicht behaupten möchte, alles verstanden zu haben. Aber ohne tutorial kommt man im Skripten einfach nicht weit, vor allem , wenn man wie ich anfangs, oder wohl auch Aartong, ganz bei null anfängt.
 

Sir Darian

Ritter des Helm
Registriert
01.04.2000
Beiträge
33.907
Hmmm... *grübel*

Richtig.

Ich habe auch mal ein Modul begonnen und es dann mangels Skriptkenntnissen in die Ablage verbannt.

Zwar wollte ein Kumpel von mir, der sich mit C- Programmierung auskennt, und meinte, die Skriptsprache von NWN sei nicht viel anders, mir damals zu Hand gehen, aber da war das Real Life stärker... :D

Mit diesem Tutorial besteht also wieder Hoffnung, daß da doch noch was weitergeht. :)
 

Leronis

Erste in Arillin
Registriert
25.04.2003
Beiträge
507
Ich wollte hier nur mal ganz stolz anmerken, daß Aartong mein Sohn ist :):):)!!!
 

Theron

Kampfmagier
Registriert
01.04.2000
Beiträge
4.526
Jaja, kann ja jeder behaupten.:p;)
 
Oben