Truhe mit Trigger öffnen?

Seidenweber

Reisender
[gelöst] Trigger als Activator benutzen und damit Truhe öffnen.

Gelöst: Lösung steht hier

Moin!

In der Theorie liest sich das alles ganz einfach, aber offenbar bin ich zu blöd, das zu kapieren (obwohl ich glaube, inzwischen alles auffindbare gelesen und probiert zu haben).

Problem: Ich möchte eine selbst erstellte Truhe mit einem Trigger [T] öffnen.

Allerdings brauche ich dazu bitte mal eine Schritt-für-Schritt-Anleitung am konkreten Beispiel von jemandem, der es selber genau so gemacht hat.

  • Ich baue ein "Primitive" mit [T]
  • Truhe und Trigger stelle ich in meinen Raum.
  • Auf dem Tab "Primitive" der Referenz des Triggers markiere ich "Player Activation"
  • nun müsste ich ein Script an den Trigger hängen, bin aber inzwischen nicht mehr sicher, wie das aussehen muss oder ob ich eines der DefaultScripte benutzen kann.
  • Nun muss noch die Truhe mit dem Trigger verbunden werden. Linked Ref oder Attach Ref ?? Vom Trigger zur Truhe oder umgekehrt??
Mein letzter Versuch sah so aus:
Code:
scriptName xFCActivateLinkedRef extends ObjectReference

ObjectReference myLinkedRef
Actor Property PlayerREF Auto

Event OnActivate(ObjectReference myLinkedRef)
     If akActionRef == PlayerREF
         myLinkedRef = GetLinkedRef() as ObjectReference
         myLinkedRef.Activate(PlayerREF, true)
     EndIf
EndEvent
vielleicht weiß ja jemand Rat. Ich blicke jedenfalls nicht mehr durch, weil ich auch nicht erkennen kann, WAS ich jeweils falsch mache...

Mein einziger Erfolg war bislang, dass ich zwar in der Nähe des Triggers die Anzeige bekomme, um die Aktion mit [E] auszuführen, aber es passiert nix. Entweder ist mein Script falsch, oder ich verlinke die falsch oder beides.

Danke :)
 
Zuletzt bearbeitet:
Code:
ObjectReference Property Kiste Auto Hidden

Event OnTriggerEnter(ObjectReference AkActivator)

Kiste = GetLinkedRef()

If(Game.GetPlayer()==AkActivator)

	Kiste.Activate(Game.GetPlayer(), true)
EndIf
EndEvent

Dass hängst du an einen "neu" erstellten Aktivator und verbindest ihn mit einer Triggershape.
 
Hallo,

Versuche es mal mit diesem Skript:

Code:
scriptName xFCActivateLinkedRef extends ObjectReference

Event OnActivate(ObjectReference akActionRef)     
    If akActionRef == Game.GetPlayer()
        ObjectReference myLinkedRef = GetLinkedRef() as ObjectReference
        myLinkedRef.Activate(akActionRef, true)
    EndIf
EndEvent

Dann für den Trigger unter linked ref die Truhe auswählen.
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: Seidenweber
@nnw
verstehe ich nicht ganz, müsste ich das Script nicht an den trigger hängen und den Trigger mit einem Activator (Kiste) verbinden und nicht umgekehrt?

@Ghaunadaur: Das sieht imho komisch aus. Du horchst auf ein onActivate Event und aktivierst darin die Truhe? bin grad gar nicht sicher, ob trigger überhaupt ein onActivate Event verarbeiten.
Außerdem, wenn ich den Trigger mit der Kiste verbinde müsste ch das nicht mit einem enableParent machen wie bei einer (geheim)Tür, die durch so eine PullChain geöffnet wird?
 
Du möchtest die Kiste per Triggerbox öffnen, sobald der Spieler den Trigger betritt?
Also erstellst du einen neuen Aktivator und hängst das Skript dran. Dann lädst du deine Interior- / Exteriorzelle und ziehst dort mit dem T - Button eine neue Triggerbox auf. In der Auswahlliste suchst du dir dabei deinen zuvor erstellten Aktivator heraus. Nun verlinkst du den Trigger per Linked Ref mit deiner Kiste.
 
Danke an alle, die helfen wollten.

Leider hat aber wohl nur Ghaunadaur mein Posting wirklich gelesen und auch verstanden, was ich machen wollte. :?

Anyway... Meine Frage war vielleicht auch nicht besonders glücklich formuliert. Das Problem war, dass ich ein statisches Objekt als Truhe "zweckentfremden" wollte. Wenn man die BSA-Archive entpackt hat, wäre eigentlich der einfachste Weg, eine neue Truhe zu erstellen und dazu das entsprechende *.NIF zu verwenden.

Statt dessen wollte ich aber einen Trigger (der in dem Fall zu einem unsichtbaren Activator wird) um ein nicht aktivierbares Objekt legen und ihn mit einer Truhe verbinden, die irgendwo außer Reichweite versteckt ist.

Der Vorgang ist wie vom mir in der Frage beschrieben. Die Referenz für die Truhe muss, wie von Ghaunadaur gesagt, beim Trigger unter dem Tab 'linked Ref' festgelegt werden. Das funktionierende und universell verwendbare Script auf dem Trigger sieht wie folgt aus:
Code:
Scriptname MyScript extends ObjectReference
 
ObjectReference Property MyRef Auto
 
Event OnActivate(ObjectReference akActionRef)
                If akActionRef == Game.GetPlayer()
                               MyRef = GetLinkedRef() as ObjectReference
                               MyRef.Activate(Game.GetPlayer(), true)
                EndIf
EndEvent