[WIPz] New Vegas Script Extender (NVSE)

Post » Wed May 05, 2010 7:58 am

If you're looking into key/control stuff, you might want to check out DisableKey for mouse wheel up/down. I was never able to disable it, so the camera zoom in/out action couldn't be avoided. I brought up the subject in one of the old FOSE threads, but I don't know if you guys ever investigated it.
User avatar
BaNK.RoLL
 
Posts: 3451
Joined: Sun Nov 18, 2007 3:55 pm

Post » Tue May 04, 2010 10:44 pm

Thanks for taking the time.

And another (hopefully) minor request:

Would it be possible to implement HoldControl and ReleaseControl functions, similar to the key variants? Here's hoping this might be a simple one, since tapcontrol, enablecontrol etc functions are already in place anyhows :)

I imagine I can add these functions.

If you're looking into key/control stuff, you might want to check out DisableKey for mouse wheel up/down. I was never able to disable it, so the camera zoom in/out action couldn't be avoided. I brought up the subject in one of the old FOSE threads, but I don't know if you guys ever investigated it.

Sure - while I am examining things I will test and see what might be going on there. Looks like I'll be spending a bit of time working on the input code when next I get a chance to look at NVSE. (The holiday weekend being full of kid activities.)
User avatar
Jack Walker
 
Posts: 3457
Joined: Wed Jun 06, 2007 6:25 pm

Post » Tue May 04, 2010 9:58 pm

http://www.gamesas.com/index.php?/topic/1134094-reqz-dismember-without-killing/ was brought up and it got me back onto an old failed project of mine for FO3, basically what I need are:

ToggleSpecialAnim and Event Handlers (with the ability to apply an effect OnDeath to all actors) ported from OBSE to NVSE.

Also

Get/SetBodyPartPartitionVisibility http://sites.google.com/site/saidenstorm/fallout3bsdismemberskinbodypartindex 0/1 (1 = Visible when Alive, and 0 = Visible when Dead) -> or just 0/1 (0 = Force Cull, 1 = Force Visable)

And some way to Clone Actors -> the game engine still has the ability to do this as it body part clones when you dismember actors.

Wow, at least I do not start with the easy stuff !... :)
User avatar
Stu Clarke
 
Posts: 3326
Joined: Fri Jun 22, 2007 1:45 pm

Post » Tue May 04, 2010 10:50 pm

It would be nice if there was a way to *modify* the velocity, not only set it. What I mean is:
con_getVel / GetVel

Also some movement state detection functions would be nice too:
IsInAir
IsOnGround
IsInWater
IsFalling
IsJumping
User avatar
CYCO JO-NATE
 
Posts: 3431
Joined: Fri Sep 21, 2007 12:41 pm

Post » Wed May 05, 2010 2:56 am

I dont know if this has been requested, but is it possible for you guys to make a way for me to get the current weapon and what mods are eqiuped to it it.

Basically I just want to know what mods are on a weapon? Thanks for at least reading this.


For a better idea of what I am trying to do -> http://www.gamesas.com/index.php?/topic/1135017-weapon-mod-removal/
User avatar
Sharra Llenos
 
Posts: 3399
Joined: Wed Jan 17, 2007 1:09 pm

Post » Wed May 05, 2010 3:31 am

^This would be very useful^

I'd like to attach and detach silencers and scopes on-the-fly and I'm pretty sure moders would find a lot of uses from such functions.
User avatar
Taylrea Teodor
 
Posts: 3378
Joined: Sat Nov 18, 2006 12:20 am

Post » Wed May 05, 2010 2:04 am

Request of Official Guide to explain how to use Scene Graph to draw mesh.
User avatar
Bones47
 
Posts: 3399
Joined: Fri Nov 09, 2007 11:15 pm

Post » Wed May 05, 2010 8:32 am

http://www.gamesas.com/index.php?/topic/1134094-reqz-dismember-without-killing/ was brought up and it got me back onto an old failed project of mine for FO3, basically what I need are:

ToggleSpecialAnim and Event Handlers (with the ability to apply an effect OnDeath to all actors) ported from OBSE to NVSE.

Also

Get/SetBodyPartPartitionVisibility http://sites.google.com/site/saidenstorm/fallout3bsdismemberskinbodypartindex 0/1 (1 = Visible when Alive, and 0 = Visible when Dead) -> or just 0/1 (0 = Force Cull, 1 = Force Visable)

And some way to Clone Actors -> the game engine still has the ability to do this as it body part clones when you dismember actors.

Wow, at least I do not start with the easy stuff !... :)

Impressive! The ToggleSpecialAnim might be able to be ported over from OBSE to NVSE. I wasn't the animation expert, so I am going to have to look at the code and see what I need to find. The CloneActors is probably just a CloneForm or a place at me of another instance. But again, we'll have to look and see. But I would think something like this is possible, as someone used something similar to do decapitations in Oblivion.


It would be nice if there was a way to *modify* the velocity, not only set it. What I mean is:
con_getVel / GetVel

Also some movement state detection functions would be nice too:
IsInAir
IsOnGround
IsInWater
IsFalling
IsJumping

I am not sure exactly what you want for the modify velocity given your statement above. Let me look and see what we did for the code to see what we can do. If we've found the field used to control velocity, a ModVel function probably would be easy to do. It would depend on whether the code pays attention to a change in the field. As for the state detection functions - I can look and see there as well. We had a bunch of them in OBSE, and I believe they just reported some flags Oblivion had set. Assuming those flags are still valid, this is probably possible.

I dont know if this has been requested, but is it possible for you guys to make a way for me to get the current weapon and what mods are eqiuped to it it.

Basically I just want to know what mods are on a weapon? Thanks for at least reading this.


For a better idea of what I am trying to do -> http://www.gamesas.com/index.php?/topic/1135017-weapon-mod-removal/

GetEquippedObject 5 will return the currently equipped weapon, so that is no problem. Someone else asked for the mod information, and I have decoded most of it. I'll be able to do the Get functions without much trouble.

^This would be very useful^

I'd like to attach and detach silencers and scopes on-the-fly and I'm pretty sure moders would find a lot of uses from such functions.

The Set functions may be more difficult. The mod information lives on the base object itself and affects all instances of that. My guess is the New Vegas engine treats this somewhat like enchantments from Oblivion and when a new mod is added to a weapon the base form is cloned and this new base object is what gets the mods. If this is the case, this is great news for us. Then to mod a weapon via script you would Clone the original and then apply changes. Changes would be persisted in the save game and we'll have a true, persistent CloneForm again (which was one of the most useful functions we had in OBSE.)
User avatar
Saul C
 
Posts: 3405
Joined: Wed Oct 17, 2007 12:41 pm

Post » Wed May 05, 2010 7:50 am

What we really need, like really really, is a way to truly change an object's movement vector while still keeping Havok collision. If I had that, I could solve ALL of my problems in like - a day. Currently I'm using my own vector and then SetPos, but that allows objects to pass through anything, even the terrain. In http://www.youtube.com/watch?v=h4DP1rMkHDM hoverboard mod I'm moving a creature in X and Y, but letting the game set its Z value, and then setting the player a certain distance above the creature. Then I'm putting a lot of invisible items around the creature to form a crude bounding cylinder, with each item pulling the creature towards itself in its OnHitWith block, and then firing an invisible weapon towards each item from a position located directly above the creature. As you can see it sort of works, but a true solution would be so appreciated you wouldn't believe it. Maybe a GetInsideStaticObject, IsBelowGround function or something, that would work too.
User avatar
Daramis McGee
 
Posts: 3378
Joined: Mon Sep 03, 2007 10:47 am

Post » Wed May 05, 2010 9:48 am

What we really need, like really really, is a way to truly change an object's movement vector while still keeping Havok collision. If I had that, I could solve ALL of my problems in like - a day. Currently I'm using my own vector and then SetPos, but that allows objects to pass through anything, even the terrain. In http://www.youtube.com/watch?v=h4DP1rMkHDM hoverboard mod I'm moving a creature in X and Y, but letting the game set its Z value, and then setting the player a certain distance above the creature. Then I'm putting a lot of invisible items around the creature to form a crude bounding cylinder, with each item pulling the creature towards itself in its OnHitWith block, and then firing an invisible weapon towards each item from a position located directly above the creature. As you can see it sort of works, but a true solution would be so appreciated you wouldn't believe it. Maybe a GetInsideStaticObject, IsBelowGround function or something, that would work too.

I will take a look at this and at the code in OBSE which may give me clues. We'll see what we can come up with, but I really believe this will not be available in v1.

On a general note, I still expect a beta this week, but I expect it to be late. the weekend was full of family activities, so nothing has happened since Wed or Thursday last week.
User avatar
Isabella X
 
Posts: 3373
Joined: Sat Dec 02, 2006 3:44 am

Post » Tue May 04, 2010 11:24 pm

On a general note, I still expect a beta this week, but I expect it to be late. the weekend was full of family activities, so nothing has happened since Wed or Thursday last week.

By all means don't rush it. Take your time, get it right.


I might have mentioned DUINV would be out before NVSE. ;)
User avatar
Tiffany Castillo
 
Posts: 3429
Joined: Mon Oct 22, 2007 7:09 am

Post » Wed May 05, 2010 3:08 am

By all mean don't rush it. Take your time, get it right.


I might have mentioned DUINV would be out before NVSE. ;)

This is to be expected. Looking forward to your release.
User avatar
Jenna Fields
 
Posts: 3396
Joined: Mon Dec 11, 2006 11:36 am

Post » Wed May 05, 2010 5:56 am

Thanks behippo for looking into the get mod info, well make what I am planning alot easier. And like Darn said, no rush, make it as close to perfect a first release can be.
User avatar
Monika Fiolek
 
Posts: 3472
Joined: Tue Jun 20, 2006 6:57 pm

Post » Wed May 05, 2010 1:02 am

Thanks for letting us have the opportunity to express our opinions on this!

My only real requests are a SetLinkedRef/SetEnableParent/SetActivateParent, PlaceAtMeDel, and maybe even a SetIsPersistent function (If possible). I've really been annoyed at the inability to share information between two references in a dynamic way, and with SetLinkedRef, you could probably do just about anything to something; for example, you could make a dynamic trap script that causes a pressure plate to trigger the linked reference (A combat shotgun) to shoot when stepped on. Now, think of being able to create traps, mix and match them with corresponding pressure plates, and essentially doing what you want with them? This doesn't just apply to traps. You could also open doors, switch which doors to open, alter NPCs, etc.

PlaceAtMeDel is as the name hints; PlaceAtMe that flags the created creature to be deleted after several frames after death and/or after being disabled. This would prevent savegame bloat and provide a way for modders to make more use of PlaceAtMe.

For SetIsPersistent, you could, well, make a reference persistent. This would enable modders to make use of dynamic creatures as companions, or even make dynamic creatures as enemies as opposed to using Moveto or a definite amount of Leveled Creatures.

Thanks for your awesome work on the Script Extenders so far, you've got amazing programming talent ^_^

Outcast/Kalizar on the Nexus
User avatar
Jason King
 
Posts: 3382
Joined: Tue Jul 17, 2007 2:05 pm

Post » Wed May 05, 2010 6:39 am

PlaceAtMeDel is kind of redundant given Disable/Markfordelete exists? Plus nonpersistent NPCs & creatures work as companions, if you check them as Quest Items.
User avatar
Big mike
 
Posts: 3423
Joined: Fri Sep 21, 2007 6:38 pm

Post » Tue May 04, 2010 11:22 pm

About PlaceAtMeDel: The vanilla GECK Markfordelete should do the job. You have to take care that it doesn't happen to early or the player is looking but I had no troubles in FO3 with it.

Edit: Got Ninja'd ;)
User avatar
Kitana Lucas
 
Posts: 3421
Joined: Sat Aug 12, 2006 1:24 pm

Post » Wed May 05, 2010 2:01 pm

Along with a SetIsPersistent and the like, a SetScript function would be cool. It would, of course, allow you to set an object/creature to have a script. If you could make two kinds, one that replaces any script already connected to the ref and one that runs in addition to any script already on the ref, that'd be great.
User avatar
Ysabelle
 
Posts: 3413
Joined: Sat Jul 08, 2006 5:58 pm

Post » Wed May 05, 2010 10:33 am

Along with a SetIsPersistent and the like, a SetScript function would be cool. It would, of course, allow you to set an object/creature to have a script. If you could make two kinds, one that replaces any script already connected to the ref and one that runs in addition to any script already on the ref, that'd be great.


That SetScript function would be a neat one to have, though the replacer version might be a little, er, dangerous. Even with a "getscript" function to keep track of what you'd replaced, all the variables would be reset.
User avatar
Mackenzie
 
Posts: 3404
Joined: Tue Jan 23, 2007 9:18 pm

Post » Wed May 05, 2010 7:12 am

We had SetScript back in OBSE and it generally worked. I can add that to the list as well.
User avatar
Ashley Tamen
 
Posts: 3477
Joined: Sun Apr 08, 2007 6:17 am

Post » Wed May 05, 2010 1:50 pm

Along with a SetIsPersistent and the like, a SetScript function would be cool. It would, of course, allow you to set an object/creature to have a script. If you could make two kinds, one that replaces any script already connected to the ref and one that runs in addition to any script already on the ref, that'd be great.


That SetScript function would be a neat one to have, though the replacer version might be a little, er, dangerous. Even with a "getscript" function to keep track of what you'd replaced, all the variables would be reset.


Easier to just use AddSpell with an ability, unless of course your purpose if for the OnActivate Block but every other block can be faked with a magic effect.

Maybe a better function in either case would be Get/SetScript and maybe a MergeInToScript.

For the most part altering Creature Scripts off of Creatures from mods Like SSP-Creature Compendium and MMM would be disastrous to how they function and most likely especially in the case of many of mine cause all kinds of very bad havok as alot of my creatures run OnDeath, OnLoad Blocks in a manner that without them they would no longer function correctly in-game, basically wholesale altering and or replacing the scripts would break the mod.
User avatar
stevie critchley
 
Posts: 3404
Joined: Sat Oct 28, 2006 4:36 pm

Post » Wed May 05, 2010 3:23 pm

Come to think of it, there isn't much you can do in an actor's object script that you can't do with a token object sitting in their inventory with its own object script. I was thinking gethitlocation would work in an actor's object script, but checked and that's not the case.
User avatar
Ownie Zuliana
 
Posts: 3375
Joined: Thu Jun 15, 2006 4:31 am

Post » Wed May 05, 2010 5:02 am

Come to think of it, there isn't much you can do in an actor's object script that you can't do with a token object sitting in their inventory with its own object script. I was thinking gethitlocation would work in an actor's object script, but checked and that's not the case.


GetHitLocation works just fine from a Magic Effect, I attach this script to every Creature I create as an Ability to make sure everything is registering correct.

scn 1SSBEGetHitLocationScriptBegin ScriptEffectStart	If GetHitLocation == -1		Return;		ShowMessage 1SSMessageDebugNeg1	Elseif GetHitLocation == 0		ShowMessage 1SSMessageDebug0	Elseif GetHitLocation == 1		ShowMessage 1SSMessageDebug1	Elseif GetHitLocation == 2		ShowMessage 1SSMessageDebug2	Elseif GetHitLocation == 3		ShowMessage 1SSMessageDebug3	Elseif GetHitLocation == 4		ShowMessage 1SSMessageDebug4	Elseif GetHitLocation == 5		ShowMessage 1SSMessageDebug5	Elseif GetHitLocation == 6		ShowMessage 1SSMessageDebug6	Elseif GetHitLocation == 7		ShowMessage 1SSMessageDebug7	Elseif GetHitLocation == 8		ShowMessage 1SSMessageDebug8	Elseif GetHitLocation == 9		ShowMessage 1SSMessageDebug9	Elseif GetHitLocation == 10		ShowMessage 1SSMessageDebug10	Elseif GetHitLocation == 11		ShowMessage 1SSMessageDebug11	Elseif GetHitLocation == 12		ShowMessage 1SSMessageDebug12	Elseif GetHitLocation == 13		ShowMessage 1SSMessageDebug13	Elseif GetHitLocation == 14		ShowMessage 1SSMessageDebug14	EndifEnd

User avatar
Danel
 
Posts: 3417
Joined: Tue Feb 27, 2007 8:35 pm

Post » Wed May 05, 2010 1:02 am

Had a productive evening. Ported over some important functions from FOSE: Ref walking(GetFirstRef, GetNextRef, GetNumRefs + Cell variations), IsPersistent, GetLinkedDoor, GetTeleportCell, Get/SetRefCount.

I also did some testing, and GetWeaponAmmo will return the base form listed in the GECK,. So sometimes it will be an ammo, and sometimes a form list. I'll port a bunch of the IsXXX (IsFormList, IsAmmo) functions. Folks will have to check that before the work on the returned value.
User avatar
Del Arte
 
Posts: 3543
Joined: Tue Aug 01, 2006 8:40 pm

Post » Wed May 05, 2010 1:15 pm

YAY! Ref walking :D
User avatar
Philip Lyon
 
Posts: 3297
Joined: Tue Aug 14, 2007 6:08 am

Post » Wed May 05, 2010 9:58 am

Thank you! I'll be able to port my GARU mod with the ammo functions :)
User avatar
Jake Easom
 
Posts: 3424
Joined: Sun Jul 29, 2007 4:33 am

PreviousNext

Return to Fallout: New Vegas