Registrierung Häufig gestellte Fragen Suche Mitgliederliste Portal - Planet Skyrim.de Kalender Moderatoren und Administratoren Startseite
Morrowind&OblivionForum.de - PMM-Projects Network » The Elder Scrolls III: Morrowind » Morrowind Editor Help » Tür mit Bedingung Lv 40 + Nerevarine » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
nexiss
Healer



Dabei seit: Juli 2004
Geschlecht: keine Angabe
Herkunft:
Beiträge: 52

nexiss ist offline
  Tüt mit Bedingung Lv 40 + NerevarineAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo,

ich bin ehrlich gesagt ein totaler script noob und hab keine ahnung wie das geht also das scripten und das script dann auf die tür legen usw.

Also ich würde gerne eine Tür mit der im Titel genannten bedingung erstellen

14.12.2004, 13:26 Profil von Füge  deiner Freunde-Liste hinzu Email an nexiss senden
F.I.M.
Acid Monk




Dabei seit: März 2004
Geschlecht:
Herkunft: 127.0.0.1
Beiträge: 2058

F.I.M. ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

kannst die ja mal das hier ansschauen


__________________

14.12.2004, 15:05 Profil von Füge  deiner Freunde-Liste hinzu Email an F.I.M. senden Homepage von F.I.M. Xfire Screenname: acidguru
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9256

Garak ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

OK, gehen wir systematisch vor - das Originalspiel ist äuserst geizig mit türscripten, aber eines gibt es doch: das von der Tür zur Cavern of the incarnate (Hl. des Fleischwasauchimmer):

code:

Begin CavernIncarnateDoor

float timer
short state
short talking

;run the timer, can only talk after 6 seconds
if ( talking == 1 )
set timer to timer + GetSecondsPassed
if ( timer > 6 )
set talking to 0
set timer to 0
endif
endif

if ( OnActivate == 1 )

if ( GameHour > 6 )
if ( GameHour < 8 ) ;hour is 6 to 8 AM
Say "vomiscA2-6_cave_open.mp3" , "In the dawn hour under Azura's Star, the door is opened."
set state to 10
endif
endif

if ( GameHour > 18 )
if ( GameHour < 20 ) ; hour is 6 to 8 PM
Say "vomiscA2-6_cave_open.mp3" , "In the dawn hour under Azura's Star, the door is opened."
set state to 10
endif
endif

;gets here if the hour is wrong
if ( state != 10 )
if ( talking = 0 )
Say "vomiscA2-6_cave_closed.mp3", "The door is locked, and will not open. The star is the key."
set talking to 1
endif
endif

endif

if ( state == 10 )
;need to make them wait if the door needs to open so they hear the voice
Disableplayercontrols
set timer to timer + getsecondspassed

if ( timer > 5 )
set state to 0
set timer to 0
enableplayercontrols
Activate
endif

endif

End



unglücklicher weise ist das eines der wenigen überladenen originale - Du erlaubst, dass ich die Sprachausgabeteile entferne, nur zur Übersicht, und ein wenig farbe ins spiel bringe?


code:

Begin CavernIncarnateDoor


short state


if ( OnActivate == 1 )

if ( GameHour > 6 )
if ( GameHour < 8 ) ;hour is 6 to 8 AM

set state to 10
endif
endif


if ( GameHour > 18 )
if ( GameHour < 20 ) ; hour is 6 to 8 PM

set state to 10
endif
endif



endif

if ( state == 10 )
set state to 0
Activate
endif
End


Also, die interessanten Stellen sind die folgenden:
In grün, eine Abfrage auf Onactivate == 1. OnActivate nimmt immer für genau einen scriptdurchlauf den wert 1 an, wenn der entsprechende Gegenstand aktiviert wird, hier hat also jemand versucht, die Tür zu öffnen.

Bei gelb sind einige Bedingungen für eine änderung der Variable "state" innerhalb dieser klammerörmigen If-Anwesungen. Hier sind das abfragen auf die uhrzeit (die cavern öffnet sich ja nur zwischen 6 und 8 jeweils morgens und abends), die musst Du durch Deine Bedingungen ersetzen.
Wenn jedenfalls diese Bedingungen erfüllt sind, wird eine Statusvariable auf 10 gesetzt, die im weiteren verlauf noch mal abgefragt wird. Sollte sie auf 10 gesetzt worden sein, wird unten der rote befehl Activate ausgeführt - dieser bewirkt, dass die vorher mit OnActivate abgefangene Öffnung der tür nun doch ausgeführt wir; die tür geht auf (falls sie nicht abgeschlossen ist).

im Prinzip musst Du jetz nur noch die Bedingungen durch Deine Bedingungen ersetzen - ist zwar dann noch nicht sonderlich elegant, aber es funktioniert.


die Bedingungen.. nun, die stufe ermittelst Du mit

Player -> getlevel

und den nevrevarine-Status ermittelt man - wie etwas recherche im Editor zu tage fördert über den Journaleintrag B8_MeetVivec 50, die passende Abfrage dazu lautet

getjournalindex B8_MeetVivec >= 50

damit solltest du das script für deine Tür zusammenbasteln können. Wenn das klappt, reden wir darüber, wie man dem spieler sagt, warum er nicht rein darf...


__________________
drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen

14.12.2004, 15:06 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
ReneMiner
Crusader



Dabei seit: Januar 2004
Geschlecht: keine Angabe
Herkunft:
Beiträge: 260

ReneMiner ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Das original-Game ist nicht ohne Grund so "geizig" mit Scripts an Türen. Denn wenn eine Tür auf OnActivate reagiert
und dabei Activate macht wird Cellchanged == 1 abgefangen!!!

Alle Scripts entweder die sich an Objekten in der Zelle die man verlässt und in der Zelle die man betritt befinden oder auch global laufende Scripte welche auf ein Cellchanged == 1 irgendwas ausführen sollen werden das nicht tun!

Im günstigsten Fall hat das nur ein paar Sklaven zur Folge die sich nach dem befreien nicht disablen.

Ich hoffe Ihr wisst alle was ich meine und denkt daran wenn Ihr moddelt .

OnActivate + Activate an Türen == Null Zellwechsel!


__________________
Mess them Meshes up

28.12.2004, 06:42 Profil von Füge  deiner Freunde-Liste hinzu Email an ReneMiner senden
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von ReneMiner
Das original-Game ist nicht ohne Grund so "geizig" mit Scripts an Türen. Denn wenn eine Tür auf OnActivate reagiert
und dabei Activate macht wird Cellchanged == 1 abgefangen!!!

Alle Scripts entweder die sich an Objekten in der Zelle die man verlässt und in der Zelle die man betritt befinden oder auch global laufende Scripte welche auf ein Cellchanged == 1 irgendwas ausführen sollen werden das nicht tun!

Im günstigsten Fall hat das nur ein paar Sklaven zur Folge die sich nach dem befreien nicht disablen.

Ich hoffe Ihr wisst alle was ich meine und denkt daran wenn Ihr moddelt .

OnActivate + Activate an Türen == Null Zellwechsel!

Ganz sicher?
Ich verwende relativ oft Scripte mit Chellchange-Abfragen und auch Scripte auf Türen, aber ich hatte noch nie Probleme damit.
Aber das Problem könnte man ja leicht umgehen indem man die entsprechende Türe als Static definiert und den PC manuell "teleportiert".


__________________


Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein

Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach

28.12.2004, 07:56 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
Garak
Admin




Dabei seit: Juli 2002
Geschlecht:
Herkunft: Cardassia Prime
Beiträge: 9256

Garak ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

doch, ich kann das bestätigen - sollte aber bei einem "Scriptnewbie " zu keinen wirklichen Problemen führen. Trotzdem danke für die erinnerung, Rene.


__________________
drei mal dürft ihr raten, wer grade seine Signatur geschrottet hat...geht aber wieder - allerdings solltet Ihr noch die Finger von den Avataren lassen

28.12.2004, 12:53 Profil von Füge  deiner Freunde-Liste hinzu Email an Garak senden Homepage von Garak Füge Garak in deine Contact-Liste ein
ReneMiner
Crusader



Dabei seit: Januar 2004
Geschlecht: keine Angabe
Herkunft:
Beiträge: 260

ReneMiner ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Aber das Problem könnte man ja leicht umgehen indem man die entsprechende Türe als Static definiert und den PC manuell "teleportiert".


Und was machst Du mit den Begleitern des Spielers?


__________________
Mess them Meshes up

29.12.2004, 04:47 Profil von Füge  deiner Freunde-Liste hinzu Email an ReneMiner senden
Hephaistos
Verschollen




Dabei seit: Februar 2003
Geschlecht:
Herkunft: Wien
Beiträge: 2102

Hephaistos ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Zitat:
Original von ReneMiner
Zitat:
Aber das Problem könnte man ja leicht umgehen indem man die entsprechende Türe als Static definiert und den PC manuell "teleportiert".


Und was machst Du mit den Begleitern des Spielers?


Welche Begleiter?
Im Normalfall ist es eher die Ausnahme das der PC nicht alleine unterwegs ist (sieht man von diversen Söldner-Mods ab). Und eine Türe die Level 40 benötigt, damit man mit dem, was dahinter lauert fertig wird, dürfte dem 08/15-NPC schwer überfordern.
Aber bitte, wenn es dich so stört, dann führe die Tür als Schleuse aus: Auf der äußeren liegt das Script, die innere führt den Cellenwechsel durch.


__________________


Die Dummheit der Menschen und das Weltall sind unendlich, wobei ich mir beim Weltall noch nicht sicher bin.
Albert Einstein

Wenn die Klügeren nachgeben, regiert Dummheit die Welt.
Marie von Ebner-Eschenbach

29.12.2004, 08:12 Profil von Füge  deiner Freunde-Liste hinzu Email an Hephaistos senden
ReneMiner
Crusader



Dabei seit: Januar 2004
Geschlecht: keine Angabe
Herkunft:
Beiträge: 260

ReneMiner ist offline
  Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Schleuse? Ja, das sieht nach ner vernünftigen Lösung aus


__________________
Mess them Meshes up

30.12.2004, 08:29 Profil von Füge  deiner Freunde-Liste hinzu Email an ReneMiner senden
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Design by: Garak - Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR