Jump to content

Help with activator for door


kagstrom2100

Recommended Posts

Just remembered where this is in Fo:NV it's in Fortification Hill, in the house where you use the platinum chip to open the UtlRmStairsHatch01 . it's maybe not using a ElectricalSwitch but i saw that it's using a script as link not link ref or anything, i tried to chance the script but sill did not work :/ :(
Link to comment
Share on other sites

"It did not work" does not give us much to go on. Please list out the various objects you have created and show the scripts. Or, if you have a small mod, upload it and give instructions on how we can reproduce your problem.

 

sorry but as i think you can tell i'm new to geck and this is my first mod. But i can't get how it can be so hard to make a button open a door :P . i think i can upload it soon an give you more instructions....

Link to comment
Share on other sites

I have found that modding in geck can be frustrating and time consuming. But, once I figure something out, it is satisfying. Once I have figured it out, then it is not so hard. It's just a question of figuring out what I missed.

 

Ya but when you have fixed the problem it's fun again. If you or anyone else can help me over Skype or Msn it wold be great and much easier for both.

Link to comment
Share on other sites

  • 3 weeks later...

ok from what i can gather you have a switch that when pressed should open a door.

 

SO you obviously have a "door" and a "switch"

 

is the switch an activator? and does it have a script attached to the base item? whats in your script? it shoudl be something like on activate if linkedref getopenstate is equal to closed set openstate to open and vice versa.

 

that should be it.

Link to comment
Share on other sites

Ya i have a switch and a "door" and the "switch" is an activator

The "switch" do not have a script needer do the door.

I can't scrip but i can try. BTW someone know's how to use computer to open secret way under Overseer's desk? i have looked at how it is in fallout 3 geck at Vault 101 and made like it's set up there but it dose not work :/

Link to comment
Share on other sites

Hi Kagstrom,

 

First of all, don't have an Enable Parent set on either your door or your switch. It's just going to confuse things. You mentioned it in one of your other posts and I don't think you really knew what it meant. What an Enable Parent does is just tells the object whether or not it is enabled based on whether it's parent is enabled. If you have that set and you aren't actually using it that way you might end up with your door disappearing when you're not expecting it or something. In any case it's unnecessary.

 

What you want to do, is have your activator run a script that sets the door to be open.

 

The simple way to do this: Set your door to be a Persistent Reference, and give it a proper Reference ID. In your activator script, in an OnActivate block, use GetOpenState to see if the door is open (1) or closed(3), and use SetOpenState to open (1) or close (0) it.

 

The more complicated way to do this: Make a generic script, similar to the ones in the Useful Scripts link above. Attach that script to any door switch that you make. Then ensure that your activator has its Linked Reference set to the door that you want to open. Instead of using the reference name, you use GetLinkedRef to set a ref variable to the door, but otherwise you do it the same way.

 

The Useful Scripts that was linked above is probably confusing because it has more complicated things than you're trying to do. What you're trying to do is very simple.

 

Very Simple Way: (Your door has a reference id of MyDoorREF)

ScriptName MyDoorSwitchScript
Begin OnActivate
   If MyDoorREF.GetOpenState == 3
              MyDoorREF.SetOpenState 1
           Elseif MyDoorREF.GetOpenState == 1
              MyDoorREF.SetOpenState 0
        Activate
End

 

Still Simple but more convenient way: (Your door is set to the Linked Reference of the activator)

 

ScriptName DoorSwitchScript
ref door
Begin OnActivate
          set door to GetLinkedRef

   If door.GetOpenState == 3
              door.SetOpenState 1
          Elseif door.GetOpenState == 1
              door.SetOpenState 0
          Endif
        Activate
End

 

One thing to mention, if you're having trouble linking a reference, make sure that the object your trying to link to is set as a Persistent Reference.

Link to comment
Share on other sites

Hi Kagstrom,

 

First of all, don't have an Enable Parent set on either your door or your switch. It's just going to confuse things. You mentioned it in one of your other posts and I don't think you really knew what it meant. What an Enable Parent does is just tells the object whether or not it is enabled based on whether it's parent is enabled. If you have that set and you aren't actually using it that way you might end up with your door disappearing when you're not expecting it or something. In any case it's unnecessary.

 

What you want to do, is have your activator run a script that sets the door to be open.

 

The simple way to do this: Set your door to be a Persistent Reference, and give it a proper Reference ID. In your activator script, in an OnActivate block, use GetOpenState to see if the door is open (1) or closed(3), and use SetOpenState to open (1) or close (0) it.

 

The more complicated way to do this: Make a generic script, similar to the ones in the Useful Scripts link above. Attach that script to any door switch that you make. Then ensure that your activator has its Linked Reference set to the door that you want to open. Instead of using the reference name, you use GetLinkedRef to set a ref variable to the door, but otherwise you do it the same way.

 

The Useful Scripts that was linked above is probably confusing because it has more complicated things than you're trying to do. What you're trying to do is very simple.

 

Very Simple Way: (Your door has a reference id of MyDoorREF)

ScriptName MyDoorSwitchScript
Begin OnActivate
   If MyDoorREF.GetOpenState == 3
              MyDoorREF.SetOpenState 1
           Elseif MyDoorREF.GetOpenState == 1
              MyDoorREF.SetOpenState 0
        Activate
End

 

Still Simple but more convenient way: (Your door is set to the Linked Reference of the activator)

 

ScriptName DoorSwitchScript
ref door
Begin OnActivate
          set door to GetLinkedRef

   If door.GetOpenState == 3
              door.SetOpenState 1
          Elseif door.GetOpenState == 1
              door.SetOpenState 0
          Endif
        Activate
End

 

One thing to mention, if you're having trouble linking a reference, make sure that the object your trying to link to is set as a Persistent Reference.

 

 

Tnx tnx tnx at last someone who understand me, you the best it worked :)

 

BTW can you use this on overseers desk to?

course it's an activator and not a door :/

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...