Construction Set Skriptthread zum Construction Set

So würde doch die Tür aktiviert werden, auch wenn der Spieler den Schlüssel nicht hätte.

Code:
scn name   
begin onactivate 
activate
if player.getitemcount <schluessel-ID> == 1 
player.removeitem <schluessel-ID> 1 
endif 
end
Es muss so aussehen.
Code:
scn name   
begin onactivate 
if player.getitemcount <schluessel-ID> == 1 
activate
player.removeitem <schluessel-ID> 1 
endif 
end
 
Komisch.
Wenn ich das dann speichern will sagt der was von: Syntax error. Invalid reference 'Ref' (only object references and reference variablesare allowed in this context).

Und dann speichert der das Script einfach nicht.
 
Zuletzt bearbeitet:
Bei "ref" musst du die Reference-ID von der Vitrine eingeben ;)
Doppelklick auf die Vitrine und oben in die Zeile schreibst du den Ref-Namen rein. Und um eine Ref in einem Skript verwenden zu können, muss die Vitrine "persistent reference" sein.

Edit: ist der Hebel so einer wie in den Festungen oder ein Schalter? Also einer mit einer Animation,die beim ersten mal vorwärts und beim zweiten mal rückwärts geht oder so wie ein Ayleiden-Schalter nur nach innen und nach außen gedrückt wird,wenn man ihn aktiviert?
 
Zuletzt bearbeitet:
Dann solltest du das Skript so hier schreiben:

Code:
scn name
short once

begin onactivate
if once==0
ref.lock 100
playgroup forward 0
set once to 1
elseif once==1
ref.unlock
playgroup backward 0
set once to 0
endif
end

Auf diese Weise bewegt sich der Hebel beim Aktivieren auch ;) Ich hab jetzt die Zeile "ref.unlock" eingefügt.Dadurch wird beim zweiten Benutzen die Vitrine wieder aufgeschlossen. Wenn du das nicht möchtest,lasse diese Zeile einfach weg ;)
 
  • Like
Reaktionen: Irathindur
Durch ein Skript oder allgemein?im cs brauchst du ja nur doppelklich auf die ref machen udn dann "Edit Base Object" oderso anklicken.Per Skript müsste es durch den Befehl

"Ref.GetID"

rauszukriegen sein.
 
  • Like
Reaktionen: kredo
Ich bräuchte eines das man auf eine Falle legen kann, diese soll sich dann nur auslösen, wenn der Spieler nicht Mitglied bei der DB, der Diebesgilde oder ein Vampir ist.
 
Ich gehe mal davon aus, dass du mit der "Falle" einen Trigger meinst... Dann kannst du so ein Skript nehmen:
Code:
scn name

short triggered

ref myParent
ref mySelf

Begin onTriggerActor player

if triggered
 return
endif
if player.getInFaction DarkBrotherhood
 return
elseif player.getInFaction ThievesGuild
 return
elseif PCVampire > 0
 return
endif
set triggered to 1
set myparent to getParentRef
set mySelf to getSelf
myParent.activate mySelf 1

end


Begin onReset

set triggered to 0

end
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Nirnwurz
Das hier sollte funktionieren:

Code:
scn NAME
ref mySelf
ref myParent
short activated

begin gameMode

    if activated == 0
        if getDistance player < 64
            set myParent to getParentRef
            set mySelf to getSelf
if player.getinfaction DarkBrotherhood==0 && player.getinfaction ThievesGuild==0 && player.getvampire==0
myParent.activate mySelf 1
endif
            set activated to 1
            playgroup forward 0
        endif
    endif

end

begin onReset

    reset3DState
    set activated to 0

end
Edit: Zu langsam...
 
  • Like
Reaktionen: Nirnwurz
Bei dem kommt aber die Meldung Unknown command getPCvampire?
Wie müsste ich das Script denn dann schreiben wenn jeder NPC auch erwischt werden soll, also z.B eine Wache die da unten durch geht.