Construction Set Morrowind-Skriptkurs - Lektion 3

Lösungen

  1. Statte ein Objekt mit einem Script aus, dass es nach dem Aktivieren verschwinden lässt.

    Ein sehr kurzes Script. Man muss nur die Aktivierung des Objekts überprüfen und den Gegenstand im Falle der Aktivierung diablen. Da ein disableder Gegensatdn nicht mehr aktiviert werden kann, hat sich das Problem damit von selbst gelöst.

    Code:
    begin kf_sk_vanish1_script
    
    if ( OnActivate == 1 )
      Disable
    endif
    
    end
  2. Bastele einen Activator, der anfangs disabled ist und erst nach einem bestimmten Tagebucheintrag erscheint. (Hinweis: Ihr könnt einen Gegenstand nicht im CS als disabled einstellen. Der Gegenstand ist eigentlich enabled, wenn ihr das Spiel ladet. Ihr müsst ein Script verwenden um ihn zu deaktivieren.)

    In diesem Script muss man den Gegenstand zunächst disablen. Dazu sorgt man dafür, dass dies beim ersten Scriptdurchlauf automatisch geschieht. Da die state-Variable mit 0 initialisiert wird, ist die erste if-Abfrage auf jeden Fall erfüllt. Dadurch wird der Gegenstand direkt im ersten Frame nach dem Laden der Zelle disabled. Danach wird dieser Teil des Scripts nie mehr aufgesucht, da state nun 1 ist. In diesem Zustand kann bequem auf den richtigen Tagebucheintrag gewartet werden.

    Code:
    begin kf_sk_vanish2_script
    
    short state
    
    if ( state == 0 )
      Disable
      set state to 1
    elseif ( state == 1 )
      if ( GetJournalIndex, "kf_test_journal" == 100 )
        Enable
        set state to 2
      endif
    endif
    
    end
  3. Erschaffe einen Geist, der nur nachts erscheint.

    Dieses Script ist ein wenig schwieriger. Da wir nicht wissen, wann der Spieler die Zelle mit dem Geist betritt, müssen wir jede mögliche Uhrzeit abdecken. wenn das Script zum ersten Mal läuft, ist der Geist auf jeden Fall enabled. Also prüfen wir zunächst auf einer Bedingung, wann er verschwinden soll. Das ist jede Uhrzeit zwischen 6 und 20 Uhr. Sobald dies eredigt ist, springt das Script in den zweiten Teil und wartet auf eine der Bedingungen, wann der Geist wieder erscheinen soll. Dies ist der Fall wenn entweder die Uhrzeit größer als 20 Uhr oder kleiner als 6 Uhr ist.

    Code:
    begin kf_sk_vanish1_script
    
    if ( GetDisabled == 0 )
      if ( GameHour > 6 )
        if ( GameHour < 20 )
          Disable
        endif
      endif
    else
      if ( GameHour < 6 )
        Enable
      elseif ( GemHour > 20 )
        Enable
      endif
    endif
    
    end