Construction Set Quest erstellen

thefuture2

Neuankömmling
hi,

wie mache ich es, dass wenn ich buch A lese, dem Spieler ein Tagebucheintrag hinzugefügt wird und somit eine Quest beginnt?

Wie mache ich es dann wenn Item A bzw. monster A tot ist, dass der Eintrag aktualisiert wird und der Quest als abgeschlossen gilt?
 
danke nur ich würd nich fragen, wenn ich englisch könnte. 😉 das cs wiki is mir bekannt, aber is ja leider nur in englisch. :cry:
 
thefuture2 schrieb:
hi,

wie mache ich es, dass wenn ich buch A lese, dem Spieler ein Tagebucheintrag hinzugefügt wird und somit eine Quest beginnt?

Wie mache ich es dann wenn Item A bzw. monster A tot ist, dass der Eintrag aktualisiert wird und der Quest als abgeschlossen gilt?

Das Tagebuch als neues Objekt anlegen.

Dazu im CS das "Ursprungsbuch" einfach editieren, vor allem die EDITORID. Beim Schliessen fragt das CS dann "Save as a new form" (oder so), was soviel heisst wie:
"Soll ich daraus ein neues Objekt machen?" - Was Du mit "JA" beantwortest.

Nun Doppelklick Dein neu benanntes, eigenes Objekt.
Ein Button (...) neben SCRIPT anwählen.
Der Script Editor öffnet sich.

Ein Script sieht i.d.R. so aus:
Code:
ScriptName MeinBuchScript

begin OnActivate 
  if IsActionRef player == 1 
     SetStage MyQuest 20
     Activate 
  endif 
end

Code speichern, alle Fenster des Objektes schliessen, dann Objekt neu aufrufen und JETZT erst das Script im Dropdownmenu zuordnen.
Ist eine "Macke" des CS: Ein neues Script (der Baum zu selbigen) wird erst beim Objektaufruf erzeugt, daher steht ein neues Script erst zur Verfügung, wenn das Objekt neu aufgemacht wird, nachdem gecoded wurde.

Ok, unser Script Zeile für Zeile:
-> if IsActionRef player == 1
Hier stellen wir sicher, daß nur Du (Player) das Buch aktivieren kannst.
Es gibt NPC, die stehlen und picken Sachen - das würde dann ebenfalls dieses (an das Buch gebundene) Script aktivieren, was wir nicht wollen.
Daher die obige Condition (If).

-->SetStage MyQuest 20

Die entscheidene Zeile:
Wir verändern den Fortschritt (Stage) Deines Quests.
Logbucheinträge (Questlog) !!NUR!! mit Quest.

IM CS, bei CHARACTER/QUESTS.. Wählst Du Dein Quest an (linke Spalte) oder erzeugst einen neuen (linke Spalte Rechtsklick ->NEW).
Die TAB QUESTSTAGE nimmt Neueinträge nach dem gleichen Prinzip auf (Rechtsklick, NEW).

Nun noch den Eintrag "20" unter QUESTSTAGE machen und beim Gitter LOGENTRY einen neuen Text anlegen. Dieser Text ist dann der Logbucheintrag.
"Ich habe das Buch von XY gelesen und sollte es zum CIA bringen blablabla".

Die letzte Zeile in unserem Code:

->ACTIVATE

Die ist wichtig. Unser Code ist ein quasi "Interrupthandler".
Stell Dir das so vor:
Wenn immer KEIN Code vorhanden ist, führt Oblivion die Standardaktion durch (z.B: bei sog. ACTIVATOR Objekten).
Sobald wir aber Code erzeugt haben (Script), wird diese Aktion NICHT mehr durchgeführt, Oblivion "denkt" dann:

Gut...wenn wir Code haben, führen wir DEN anstelle der Standardaktion aus.

Würde bei uns also ACTIVATE als letztes fehlen, würde das Buch nicht lesbar sein, das ist nämlich der STandard Activate-Fall auf einem Buch.

Damit das aber nach unserem Code dennoch passiert, rufen wir am Ende "ACTIVATE" manuell auf.

Nun wird Dein Code ausgeführt UND das Buch lesbar.

Bedenke auch, daß es Situationen gibt, wo ACTIVATE !NICHT! in einer Condition sein soll (IF) aber die Stage dennoch erhöht. In diesem Falle kommt das Activate nach dem ENDIF der Condition.

Das ist z.B. entscheident bei Türen und evtl. "Stagetriggern" auf selbigen.
So soll z.B. die Tür immer "activated" werden, die Stage aber nu erhöht, wenn der PLAYER der "Urheber" des Triggers (Betätigung/Auslösung) war.

Es gibt eine (sher unvollständige) Wiki, wo Grundsätze erklärt werden, was manchmal hilft:

http://cs.elderscrolls.com/constwiki/index.php/Main_Page
 
thefuture2 schrieb:
danke nur ich würd nich fragen, wenn ich englisch könnte. 😉 das cs wiki is mir bekannt, aber is ja leider nur in englisch. :cry:

Dann wird's für Dich der English Abendkurs, daß ist beim Programmieren (generell) unerlässlich :?
Das CS gibt's nur auf Englisch, ist ja ein O-Tool von Bethesda.
 
RichardHH schrieb:
thefuture2 schrieb:
danke nur ich würd nich fragen, wenn ich englisch könnte. 😉 das cs wiki is mir bekannt, aber is ja leider nur in englisch. :cry:

Dann wird's für Dich der English Abendkurs, daß ist beim Programmieren (generell) unerlässlich :?
Das CS gibt's nur auf Englisch, ist ja ein O-Tool von Bethesda.

na grundlagen kann ich ja, aber so kompliertes nicht. habe im cs schon so manches hinbekommen. 😉

danke für deine ausführliche erklärung. 😉
 
Ein Quest erstellen weis aber nicht wie??

Ich wollte so en Quest machen Wo ein NPC mir was von einen ort erzählt wo es monster gibt und er soll sagen das er hilfe braucht dan soll man ja oder nein sagen können und wen man ja sagt soll der NPC mir folgen zu dem ort wo die monster sind. Dort sollen alle monster Getöttet werden und dan soll er mir danken und Heim gehen.

Wie stell ich das ein bitte helft mir.
 
Zuletzt bearbeitet von einem Moderator:
Da musst du was für scripten .
Fang doch erstma mit was leichtem an.

1: Du gehst in der oberen Leiste im CS auf das Q hier kannst du jetzt

2: rechtslkicken auf die Liste mit den Quests ,und auf new gehen

3: hier kannst du jetzt anfangen .Erst ma stelltst du bei Conditions gleich am Anfang ein: isplayableRace == 1 (oder so ähnlich weiß ich grad net genau ).und das quest braucht einen Namen
nennen wirs mal "QuestNr1"

4 :Jetzt noch bei priority 50 und auf zur nächsten Seite; die heißt Stages .

5 :Hier ertellst du in der llinken Leiste einen neuen Eintrag, bei Index ,mit rechtsklick - new. Nennen wir ihn mal 10.

6 :Jetzt kannst du ihn anklicken und einen Text reinschreiben .(Dieser Text soll später im Spiel erscheinen )

7 :Jetzt dass quest erstmal speichern (Quest Window verlassen) und einen Neuen Gegenstand kreiren.Den stellst du mal irgendwo im spiel hin wo du auch noch hinkommst.(Den soll der Spieler dann finden und aufnehmen)
8: Nur noch ein Skript auf den neuen Gegenstand legen ,

Und zwar ein Object Script:
Code:
scn Scriptname


Begin OnAdd player                           
setstage QuestNr1 10

End
durch den setstage Befehl soll der Text den du vorhin geschrieben hast dann im spiel gezeigt werden .Und nach diesem Prinzip wird jeder weitere Text in deinem Quest aufgerufen .Je klompliezierter das Qest desto mehr muss man scripten .
Grob verstanden? 🙂
 
Das ist aber nicht so toll. Es wird nicht unbedingt erklärt, wie man das ganze macht, sondern es wird nur das beschrieben was man machen soll.