Jump to content

Egg Planting Script - PlaceAtMe Problems


Billtcm

Recommended Posts

I've created a creature (An edited spore plant) that after 10 seconds lays an egg. My plan was to have the egg be pushed away from the creature after being spawned by an explosion (So the Mojave could be rejuvenated!) but unfortunately whenever I spawn the egg it comes in as a static object that can't be moved unless I interact with Z and sometimes even that doesn't work.

 

I did try spawning two different types of eggs which sometimes would dislodge the first. If anything this could be a possible solution if nothing else.

 

Currently aaaVSEggPush is an explosion that places the egg as the 'Place Impact Object' I had it simply spawning by itself before but I'm just trying different things and this is the latest iteration. 'aaaVSEggPushPusher' is a secondary explosion that spawns no egg but has a large radius and a force of 90.

 

The egg itself is an 'Alchemy' object and uses the AntEgg.nif if that helps.

 

===PLANT SCRIPT===

Begin GameMode
	if DoOnce == 1
		Return
	elseif DoOnce == 0
		set timer to timer + GetSecondsPassed
			if timer > 10
				placeatme aaaVSEggPush 1
				placeatme aaaVSEggPushPusher 1
				set DoOnce to 1
			endif
	endif
End

I've also added the 'pusher' explosion onto the eggs script but it doesn't seem to want to move still.

 

===EGG SCRIPT===

Begin GameMode
	if DoOnce == 1
		Return
	elseif DoOnce == 0
		set timer to timer + GetSecondsPassed
		placeatme aaaVSEggPushPusher 1
		set Self to GetSelf
			if timer > 10
				placeatme AAAVSCreatureTree02 1
				set DoOnce to 1
				;MarkForDelete
				;Disable
			endif
	endif
End

If anyone could help that would be great! If not maybe I'll attach it to a walking creature with a sandbox package and it can poop it out through the Mojave :tongue:

Link to comment
Share on other sites

Hm...I've done something similar before, actually - I have a disabled object in a mod that, upon being enabled, gets nudged (so it'll fall from the sky) here. To keep it short, the game needs a moment after enabling something before it can be moved around, as far as I know. A good way to check if the game is ready for it is to use HasLoaded3D.

 

I don't know how useful it'll be, but my item that's initially disabled has this script attached to it.

scn aaaNukaQtmHelmetEyebotScript
 
int FellDown
 
Begin OnLoad
  if (FellDown == 0)
     if HasLoaded3D == 1
             PlaceAtMe aaaNukaQtmHelmetEyebotExplosion
             Set FellDown to 1
endif
endif
end

And the aaaNukaQtmHelmetEyebotExplosion has these settings. It's important to have the mesh have a nif - otherwise it won't work. The vanilla FXNullExplosionArt.NIF is invisible, so it's ideal for this.

 

http://i.imgur.com/LxkV3xz.png

 

As I said, I dunno how useful this will be, but maybe it can give you some pointers :smile:

Link to comment
Share on other sites

Awesome! Thanks Jokerine, got it to work after messing around with what you gave me along with my own goofy code. Also thanks for the heads up on the NullExplosion, was wondering if there was an option for it but guess I didn't look hard enough.

 

Here's the code I ended up with if anyone is interested in using it in the future.

SCN INF_A_EggScript

;======SEED TURNS INTO ANOTHER SEED====
;Thanks to Jokerine for this code! :D

float timer

int FellDown

int DoOnce

Begin OnLoad
	if FellDown == 1
		Return
	elseif FellDown == 0
		if HasLoaded3D == 1
			PlaceAtMe INFAEggPusher
			Set FellDown to 1
		endif
	endif
End

Begin GameMode
	if DoOnce == 1
		Return
	elseif DoOnce == 0
		if timer < 5
			set timer to timer + GetSecondsPassed
		elseif timer >= 5
			PlaceAtMe AAAINFEgg01 1
			set timer to 0
			set DoOnce to 1
			return
		endif
	endif
End
Link to comment
Share on other sites

Good stuff! Nicely done, and thanks for the credit! I remember it took me AGES to figure this out, so, I'm glad I could spare you the trouble. Always happy to help :smile:

Link to comment
Share on other sites

  • Recently Browsing   0 members

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