Jump to content

Vertibird flyover


Chrophiss

Recommended Posts

Hello,

 

So i've been trying to make a vertibird do a flyover. It should move a certain distance and than disable.

But the problem i'm having is making it move at all. I'm using a script i found in FO3 GECK, namely the following:

 

scn GenericVertibirdFlyoverSCRIPT

; This trigger enables it's linked ref (a vertibird) and calls its forward animation

float timer
short doOnce
ref linkedRef

;****************************************

Begin onTriggerEnter Player

if (doOnce == 0)
	set linkedRef to getLinkedRef

	linkedRef.enable 0

	set timer to 1

	set doOnce to 1
endif

End

;*****************************************

Begin gameMode

if (doOnce == 1)
	if (timer <= 0)
		linkedRef.playgroup Forward 1
		set doOnce to 2
	else
		set timer to timer - GetSecondsPassed
	endif

elseif (doOnce == 2)
	if (linkedRef.isAnimPlaying Forward == 0)
		linkedRef.disable			;disable the vertibird when it's done playing its forward animation
		set doOnce to 3
	endif
endif

End

 

The vertibird is initially disabled and has a trigger field (with the script) as a enable parent (set opposite of parent box is checked).

Now the vertibird is enable when i walk through the trigger but just hangs there, not moving at all.

 

Now in object window i found several objects of vertibird:

Vertibird (no moving parts apparantly)

TGvertibird (no moving parts apparantly)

RRvertibirdseffects01 (moving rotors and large box around it (path?)?)

RavenRockvertibirdtakeoff (moving rotors and large box around it (path?)?)

All of above have no sounds when idle but are destructable (large explosion with debris).

 

Which one do i choose? none seem to move?

Could really use some help on this one! It's for a movie i plan on making.

 

Thanks,

Chrophiss

Link to comment
Share on other sites

For the animation look at vehicles\BF1Anim01.NIF

This is the Bearforce 1 animation for Kimball's speech at Hoover Dam.

Left is approach and landing, Backward is idle on pad, Forward is the sabotaged out of control takeoff, and Right is the normal takeoff.

I'm not sure if there's a "flyover" vertibird animation.

 

example of staged animation that you can control by changing the stage times in the onload:

scn GenericTriggerAnimationSCRIPT

int iStage
float fTimer
float Stage1
float Stage2
float Stage3
float Stage4

begin onLoad
set Stage1 to 1
set Stage2 to 1.5
set Stage3 to 3.9
set Stage4 to 60
end

begin onTriggerEnter Player
if iStage  == 0
	ObjectREF.enable
	set iStage to 1
endif
end

begin GameMode
if iStage >= 1 && iStage < 5

	; Safety check to make sure anim is playing after a reload
	If ( ObjectREF.IsAnimPlaying Forward == 0 ) && ( ObjectREF.GetDisabled == 0 )
		ObjectREF.PlayGroup Forward 1
	EndIf

	set fTimer to fTimer + GetSecondsPassed
	if iStage == 1 && fTimer >= Stage1
		ObjectREF.playgroup forward 1
		set iStage to 2
	elseif iStage == 2 && fTimer >= Stage2
		set iStage to 3
	elseif iStage == 3 && fTimer >= Stage3
		set iStage to 4
	elseif iStage == 4 && fTimer >= Stage4
		set iStage to 5
		ObjectREF.disable
		ObjectREF.markfordelete
	endif
endif
end

Link to comment
Share on other sites

If you use the activator FFER71VertibirdEncounter, you should be able to place it so it appears as a fly-over. If you place it on the ground, nearby, it's invisible, but when you play forward, it will appear to come from the distance and land at the spot you placed it. Play backward, and it takes off. You can adjust the placement so it just flys over and you disable it/never see it land. The activator is a huge volume so you need to back off some to see the extent of it in the editor.
Link to comment
Share on other sites

If you use the activator FFER71VertibirdEncounter, you should be able to place it so it appears as a fly-over. If you place it on the ground, nearby, it's invisible, but when you play forward, it will appear to come from the distance and land at the spot you placed it. Play backward, and it takes off. You can adjust the placement so it just flys over and you disable it/never see it land. The activator is a huge volume so you need to back off some to see the extent of it in the editor.

 

Hi, i placed the activator you mentioned and put it on the ground. Now when i save and play the game the vertibird yet again, appears on the ground and not moving. (except for rotors)

Must i change my script aswell? should i use the other script mentioned here? I'm still at a loss.

 

thanks for your reply!

 

EDIT:

I tried using the other script but i cannot save it? getting "Current ="

I am not a scripting/coding expert, more like a beginner so i am not sure what to change?

Edited by Chrophiss
Link to comment
Share on other sites

There are a few mods that might have something in them to help you.

if i try this i'd have to download the mods first which i'm not keen on doing right now. and then crack 'em open to look for scripts.

If someone can answer my last question(s) with vanilla scripting like rickerhk suggested than please!

 

All i need is the animations to play, preferably with the accompanying vertibird sounds.

 

Thanks for your reply though, will look through the links you mentioned.

Link to comment
Share on other sites

I have no experience setting up a script for animating, so I don't know the ends and outs of this situation.

 

The first thing I would have tried would have been giving a longer length of time before starting the animation. I also would have been adding to my time variable not subtracting, but that is mere personal preference.

 

I don't see any errors in the script that DizzasterJuice gave you, although I don't see the reason for stepping through stage 2 and stage 3's conditions. You will need to replace ObjectREF with the name of a persistent reference to use it, specifically the reference id of the object you are animating.

 

Hmm. Try removing markfordelete. It may be invalid for this purpose. The geck article states "works on actors." I am not sure, but it may not work for persistent references. I have only used that function in object scripts for actors created with PlaceAtMe.

 

That is the extent at which I can help you without trying to implement the solution myself. If you solve the problem, it would be great if you posted the script for others to see the answer.

 

Edit: You may have to capitalize Foreward.

Edited by trilioth
Link to comment
Share on other sites

I have no experience setting up a script for animating, so I don't know the ends and outs of this situation.

 

The first thing I would have tried would have been giving a longer length of time before starting the animation. I also would have been adding to my time variable not subtracting, but that is mere personal preference.

 

I don't see any errors in the script that DizzasterJuice gave you, although I don't see the reason for stepping through stage 2 and stage 3's conditions. You will need to replace ObjectREF with the name of a persistent reference to use it, specifically the reference id of the object you are animating.

 

Hmm. Try removing markfordelete. It may be invalid for this purpose. The geck article states "works on actors." I am not sure, but it may not work for persistent references. I have only used that function in object scripts for actors created with PlaceAtMe.

 

That is the extent at which I can help you without trying to implement the solution myself. If you solve the problem, it would be great if you posted the script for others to see the answer.

 

Edit: You may have to capitalize Foreward.

 

I can save the script now, forgot that you have to have the editor reference name already present before you can save a script.

I did as you said, but now the vertibird does not seem to spawn at all, or atleast i cannot see it where it usually is, tried waiting for it to come by but have seen no trace of it.

Why is this such a hassle... Thanks for the help!

Link to comment
Share on other sites

I tried several things like changing animation name to Right, tried editing my original script a bit, made vertibird persistant reference (won't appear at all when called) and i do not know what to do at all.

 

If it would atleast seem like it is doing any animation i could work with it, but it not doing a damned thing is really starting to get on my nerves.

 

How would a simple script calling for an animation look? Not looking at enabling/disabling or timers or whatever.

Just seeing it fly will be enough. Maybe than i'll be able to work something out. Now it's just hanging there. Mocking me... Could not resist shooting it everytime i tested...

Link to comment
Share on other sites

I tried several things like changing animation name to Right, tried editing my original script a bit, made vertibird persistant reference (won't appear at all when called) and i do not know what to do at all.

 

If it would atleast seem like it is doing any animation i could work with it, but it not doing a damned thing is really starting to get on my nerves.

 

How would a simple script calling for an animation look? Not looking at enabling/disabling or timers or whatever.

Just seeing it fly will be enough. Maybe than i'll be able to work something out. Now it's just hanging there. Mocking me... Could not resist shooting it everytime i tested...

 

I will try to aim this at you already having a save a location where you have the vertibird and just enough to make the animation play. I am assuming that you will need a quest script and not an object script and that the object will be enabled. This is merely for testing the animation. The object should not have a script attached to it for this test. If the object has a forward animation this should play it once:

 

scn SimpleVertibirdFlyoverQuestScript

int DoOnce

Begin GameMode

   if DoOnce == 0
       VertibirdREF.PlayGroup Forward 1
       Set DoOnce to 1
   endif

End

 

For a quest script you will want to create a new quest. Set Priority 50. Check the Start Game Enabled option. Hit Ok. Open the new quest. Find you quest script in the script drop down box. Hit Ok.

 

Also, try using a clean save. That is to: Disable you mod. Run the game. Make a new save. Close the game. Enable your mod. Run the game.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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