Archiv verlassen und diese Seite im Standarddesign anzeigen : fragen
Hi,
Ist schon etwas leer hier geworden in letzter Zeit:rolleyes: Wird mal zeit das jemand mal wieder ein paar fragen stellt:D
Also:
1.) Ich arbeite gerade an einer Quest, und die soll so starten: ich soll mit einem Bürger aus Anvil sprechen, und dort soll ein Thema erscheinen, und wenn ich auf das Thema klicke sagt der halt was. Aber wie mach ich das das es nur die Anviler sagen?
2.) In dieser Quest gibt es auch so einen Inhalt, wo man zuerst in eine Cell reinkommt, und dann schlafen muss. (Ich denke irgendwie das es besser ist in diesem Fall das Bett als Activator zu machen) Also, dabei soll eine bestimmte Zeit vergehen, und danach soll eine andere Tür stadt der, in die der Spieler reingekommen ist. Also im klartext: Der Spieler soll durch eine tür rein, schlafen, und durch eine andere raus...
Ich hab mir auch überlegt, ob ich es nicht so mache das das Bett meinen Char in eine andere Cell teleportiert. bzw. in die selbe Cell nur halt weit weit weg...
mfg
Low Post
01.07.2008, 20:46
1.)Alle Anviler Leute gehören afaik der selben Faction (irgendwas mit Anvil) an. Die kannst du unter Condition als Voraussetzung angeben.
Schau dir doch einfach das Topic Anvil an, so wie das da gelöst wurde funktioniert das ja.
2.)Du könntest mit Disable/Enable arbeiten und damit die Türen austauschen.
Als Auslöser evtl. ein QuestScript, welches von der Eingangstür gestartet wird und sich nach erledigen der Aufgabe automatisch beendet.
Also z.B. folgendes Script auf die Tür:
scn DoorScript
Begin OnActivate
if ( IsActionRef Player )
StartQuest [QuestID]
endif
Activate
End
Und das hier für die Quest (nicht Start Game Enabled):
scn QuestScript
Begin Menumode
if ( IsPCSleeping ) && ( [Ausgangstür].GetDisabled )
[Eingangstür].Disable
[Ausgangstür].Enable
SetPCSleepHours [Anzahl der Stunden]
StopQuest [QuestID]
endif
End
ok, danke sehr! Das war schon sehr hilfreich. Ich werde das am besten gleich mal ausprobieren, da ist mir aber noch eine frage aufgekommen:
Dafür muss ich doch beide türen platzieren, oder? Ich meine wie mach ich das, das die Türen sich nicht stören?
*Edit* Kann ich das mit den anvilern auch irgendwie so machen, das es wie ingame diese : "Neues Thema: Halt meine Quest". Weiß jemand wie das geht?
das die türen sich nicht stören: Platzier sie einfach direkt übereinander und hake bei der tür die dann später zu dem anderen ausgang führen soll das kästchen initally disabled (irgendwie so) ab, dann wird die zu beginn vom spiel nicht angezeigt, sie ist also praktisch vom spieler aus nicht da. Dann später, nach dem schlafen, must du die erste tür deaktivieren und die neue einschalten, etwa so in einem skript:
erstetürref.disable
zweitetürref.enable
ok, werd ich probieren, da sind grad noch ein paar probs aufgetaucht:\
also: Wie mache ich es das eine QuestStage sich ändert, wenn ich in der nähe eines X-Markers bin? Ich hab die dinger zwar schon gesetzt wo sie hingehören, aber da passiert irgendwie nix. Ich meine ingame wird dann der Pfeil schon angezeigt, aber es kommt kein Tagebuch eintrag.
Und noch was: wie mache ich es das ein Quest gleich am spiel-start anfängt? Also so wie in den erweiterungen.
Low Post
02.07.2008, 10:43
1.) in dem QuestScript der entsprechenden Quest die Entfernung vom X-Marker zum Player abfragen und dann ein SetStage ausführen:
scn QuestScript
Begin Gamemode
if ( [XMarker].GetDistance Player <= [Entfernung in Units] ) && ( GetStage [QuestID] == [Alte QuestStage]
SetStage [QuestID] [Neue QuestStage]
endif
End
Bei mehreren solchen Abfragen die neue mit einem elseif anhängen (vor dem endif).
2.) Häckchen bei StartGameEnabled dalassen und folgendes Script verwenden:
scn QuestScript
int DoOnce
Begin Gamemode
if ( DoOnce == 0 )
set DoOnce to 1
SetStage [QuestID] [QuestStage mit der Startnachricht]
endif
End
Könntest du doch eigentlich auch bei den DLCs abschreiben. ;)
Ja, das StartGameEnabled hab ich schon gemacht, ist aber nix passiert. Und wo muss ich den script dann verwenden (den 2en). Das mit den DLCs hab ich mir auch schon gedacht, aber um was abzuschreiben, muss man erstmal verstehen wo man suchen muss^^
Hab grad CS beendet, ich werds wahrscheinlich also erst später ausprobieren...
Ich hab noch eine frage: (<= ja, ich hab noch sehr sehr viele^^)
diese hat aber nix mit diesem Thema zu tuhen, also: wie kann ich ein script schreiben, das etwas bewirkt, sobald der spieler in seinem Inventar einen Kaputten gegenstand hat?
Ich meine z.b. Im kampf sinken die "Lebenspunkte" der Torso Rüstung auf 0, folglich ist diese kaputt. Wie kann ich jetzt aber einen script schreiben, der in diesem Falle etwas ausführt. Ich hoffe mal das ich ihn jetzt nicht gleich auf jede rüstung legen muss, sondern das es ihn halt ein mal gibt, und dieser dann automaisch funtzt, und halt nicht nur die Torsorüstung überwacht, sondern auch Stiefel, Helm etc.
Geht das überhaupt?
Und wo ich schon mal dabei bin, gleich noch eine:
Wie kann ich es regeln das ein Zauber dem Spieler automatisch beigefügt wird, sobald dieser eine Region betritt?
Low Post
02.07.2008, 11:45
Das Script muss der Quest zugewiesen werden.
Zum Abschreiben gibt es noch den netten Knopf Details im CS, in einem der Sachen die da aufgelistet werden muss es drin stehen. ;)
2.) Mir ist keine Möglichkeit bekannt, die das sauber löst.
Das Problem bei der Sache ist, dass Objekte im Inventar keine eigenen IDs haben, wodurch ein einzelnes untersuchen der Objekte nicht möglich ist.
3.)Folgendes Script auf ein Objekt in der fraglichen Zelle:
scn ObjectScript
short DoOnce
Begin Gamemode
if ( GetInSameCell Player ) && ( DoOnce == 0 )
set DoOnce to 1
Player.AddSpell [SpellID]
endif
End
sorry, bin einfach nicht so weit:( Wie kann man einen Script einer Quest zu weisen? Ich hab sowas nicht gefunden :(
Was das mit dem script ist: So weit so gut:D Aber mir ist aufgefallen das es nur in der Selben Cell wirkt wenn der spieler dort ist (GetInSameCell Player), dann wird :
1.) Der zauber für immer bleiben (wenn ich das richtig verstehe) sollte er aber nicht:(
2.) Das wirkt doch nur in der selben Cell, oder? Kann man das nicht auf eine Region ausweiten? Sagen wir z.b. die Gold Küste? Oder die Bergregion um Bruma herrunm?
Low Post
02.07.2008, 14:10
1.) Wenn du das Questfenster öffnest und deine Quest auswählst gibt es dort ein DropDown-Menü. Dort wählst du dann das Script aus.
Wichtig dabei ist, dass das Script auch als QuestScript abgespeichert wurde.
2.) Du hast nur geschrieben hinzugefügt. ;)
Um das auf mehrere Zellen auszuweiten kannst du entweder GetInWorldspace (http://cs.elderscrolls.com/constwiki/index.php/GetInWorldspace) verwenden, wenn das den ganzen Wordspace betrifft, oder du verwendest GetInCell (http://cs.elderscrolls.com/constwiki/index.php/GetInCell).
Bei GetInCell hast du mehrere Möglichkeiten: entweder frägst du jede Zelle ab und verknüpfst das ganze mit ||, oder du erstellst eine Dummy-Zelle, mit deren ID alle anderen Zellen beginnen (und sonst keine, falls doch müssen die extra ausgeschossen (== 0) werden).
Natürlich kann man das ganze auch Kombinieren. ;)
Also z.B. so:
scn QuestScript
short Added
Begin Gamemode
if ( Added ) && ( Player.GetInCell [ID der Dummy-Zelle] == 0 )
set Added to 0
Player.RemoveSpell [SpellID]
elseif ( Added == 0 ) && ( Player.GetInCell [ID der Dummy-Zelle] )
set Added to 1
Player.AddSpell [SpellID]
endif
End
Das ganze muss jetzt allerdings als Questscript verwendet werden.
Habs gefunden :D :D
Aber irgendwie funtzt mein script nicht ganz, also das es von anfang an da sein soll, das geht. Aber das mit dem Marker geht nicht:
scn meinScript
int DoOnce
Begin Gamemode
if ( DoOnce == 0 )
set DoOnce to 1
SetStage MeinQuest 10
endif
if ( MeinMarker.GetDistance Player <= 20 ) && ( GetStage MeinQuest == 10 )
SetStage MeinQuest 20
endif
end
Nicht das ihr euch was denkt, die namen hab ich geändert :D So wird meineQuest ingame net heißen^^
Also, was genau hab ich jetzt wieder verbockt?
Low Post
02.07.2008, 14:49
20 Units sind verdammt wenig, damit dein Script läuft müsstest du also Quasi direkt auf dem Marker drauf stehen. ;)
Laut CS-Wiki (http://cs.elderscrolls.com/constwiki/index.php/Oblivion_Units) entsprechen ~70 Units einem Meter.
Bei dir müsste man also auf ~30 cm an den Marker ran, wobei afaik die Höhe auch dazu zählt.
aso :D
Ich hab gemeit das 20 so etwa 20m entsprechen^^
thx, wird gleich mal ausgeprobt
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.