[Alpha] NifSE v1.0

Post » Fri Feb 18, 2011 7:29 pm

The Alpha is done! It has already been e-mailed to HeX_0ff, Skycaptain, and Showler. All others interested should e-mail me at dragoonwraith+nifse [at] gmail.com

The name change is due to occasional mix-ups between NifScript and the Blender Nif Scripts. Because I don't want to infringe on NifTools' excellent work, I decided to rename this utility. NifSE, of course, is a portmanteau of OBSE and Niflib, the principal components of this utility. It's not really a "Nif Script Extender", so, like the SATs, I'm going to declare that it doesn't stand for anything, the name is just "NifSE" (in my head I pronounce it "nif-sea"). Cuz I'm weird like that.

Anyway, for v1.0 we have a staggering number of new functions, plus an entirely new backbone system for storing, manipulating, and saving nif files. There is no more hard-drive bloat, as the nif files are only very briefly written to disk for Oblivion to read when it needs them, and deleted again as soon as it is finished. Nifs are saved in the .obse co-save file, and recreated as needed (NOTE: The alpha has a bug that prevents this from working correctly when the game first loads. Models loaded during initial load will show up as missing meshes; reloading them will fix that. This will be fixed for release).

Full documentation of all of the functions in v1.0 can be found http://cs.elderscrolls.com/constwiki/index.php/Category:NifSE.

http://www.gamesas.com/index.php?/topic/922622-betawipz-nifscript/

NifSE v1.0 α1
- an OBSE plug-in by DragoonWraith
1. Introduction
2. Participating in the Alpha
3. Contact
4. Credits

== Introduction ==

NifSE is an OBSE plug-in that allows Oblivion script to operate on Nif files during run-time. Nif files, or NetImmerse Format files, are 3D meshes which are used by Oblivion. These files have long been editable with 3D software and NifTools' excellent NifSkope utility, but certain operations on Nif files have been desirable for scripters and therefore impossible - until now.

More specifically, NifSE uses the NifTools' incredible "C++ library for loading, modifying, and exporting NIF files," NifLib, to create new functions through OBSE's plug-in API. Much thanks to both the OBSE and NifTools teams for their hard work that has made this possible.

== Participating in the Alpha ==

Please e-mail me at dragoonwraith+nifse [at] gmail.com if you would like a copy of the alpha.

== Contact ==

The preferred method of contacting me is just posting in this thread. Alternatively, a PM on these forums also works.

Notes on my Talk page on the CS Wiki are also acceptable, as are e-mails to: dragoonwraith+nifse [at] gmail.com

Messages or posts on any other forum or website may likely be missed for extended periods of time.

== Credits ==
  • The Oblivion Script Extender team: ianpatt, behippo, and scruggsywuggsy the ferret
    Without OBSE, I would have lost interest in modding Oblivion long, long ago, and without the plug-in API that they created, this project never could have happened

    Special thanks to Scruggs and behippo for answering myriad questions about coding for the OBSE plug-in API, and to Scruggs for implementing new features just for me!

    Extra-double-thanks for Scruggs's continued support, including writing crucial new hooks that allow NifSE to avoid ever cluttering your HD.

  • The NifTools NifLib team: Shon, amorilia, tazpn, xoalin
    The NifTools team had done all the hard work for me - all I did was provide an interface between OBSE and NifLib. Kudos to them on an incredible piece of work.

    Special thanks to amorilia for answering some questions on Nifs in general, and to tazpn for answering some NifLib specific questions.

  • Timeslip, author of the Oblivion Mod Manager and a C++ BSA Reader
    For his excellent BSA reading code, which he had contributed to the NifTools team. Many thanks for his tireless help in debugging the utility, and many apologies for wasting his time with such a silly mistake! Also thanks for OBMM, which I'm using to distribute this mod.

  • Jean-Loup Gailly and Mark Adler
    The zlib code allows me to read BSA files that I otherwise would not be able to read. zlib is an excellent free utility, one of the best products of open source design to date.

  • Speedo
    Help with statically linking zlib into NifScript.

  • throttlekitty, JDFan, and trollf
    For answering questions that I had about Nifs on the CS Forum.

  • opaj
    For help testing.

  • HeX_0ff
    For creating Unnecessary Violence, an incredible mod using NifScript, NifSE's precursor and for general help and feedback on NifScript. Also for helping to spur on NifSE's development

  • Skycaptain
    For getting me back into the game, and giving great feedback on what should be added to NifScript for NifSE.

  • Showler
    For early support of NifSE and an offer to alpha test.

  • Wyzard256, zone22, Skycaptain, HeX_0ff, shadeMe, Gekko64, anithinks, Obliver, and all those who offered good luck and well wishes when my hard drive failed.
    For serious help, advice, links, downloads, and even offers to help pay (!) for a data recovery service when my harddrive failed. Special thanks to zone22 for actually calling me on Skype and spending a good four hours (!) talking me through the data recovery process, and to HeX and shade for offering to do the same. It is only thanks to them that this project, along with ARES and hundreds of my own personal files, did not get entirely destroyed in that failure.


Please post any ideas you have for the utility here!
User avatar
Tamika Jett
 
Posts: 3301
Joined: Wed Jun 06, 2007 3:44 am

Post » Sat Feb 19, 2011 3:45 am

Thanks for the Alpha. BTW, your PM box is refusing new messages.
User avatar
Alisia Lisha
 
Posts: 3480
Joined: Tue Dec 05, 2006 8:52 pm

Post » Fri Feb 18, 2011 6:48 pm

Nice. but I feel kinda retarded because I can see like one important application. I know this has got to be useful for solving a few more age old modding road blocks. :hehe:
User avatar
Mark
 
Posts: 3341
Joined: Wed May 23, 2007 11:59 am

Post » Sat Feb 19, 2011 1:27 am

Thanks for the Alpha. BTW, your PM box is refusing new messages.

Ah, right you are! Yeah... Ugh, and there's no way to archive PMs any more? What the hell, Bethesda? Uhm. I'm going to have to ask that people not PM me for a while, then, while I figure out some alternative. Just use my e-mail address, it works better anyway.

Nice. but I feel kinda retarded because I can see like one important application. I know this has got to be useful for solving a few more age old modding road blocks. :hehe:

Weeeelll... Heh, I don't really know. I'm just doing this because it can be done. There was interest in changing textures, maybe for a Seasons mod? Anyway, I leave using it to more creative modders. HeX_0ff's uses are pretty well known (but by no means obvious; assume he's got some incredible aces up his sleeve, because I'm sure he does), and Skycaptain's ideas are very exciting. Soooo... yeah. Heh.
User avatar
lacy lake
 
Posts: 3450
Joined: Sun Dec 31, 2006 12:13 am

Post » Fri Feb 18, 2011 10:09 pm

Ah, right you are! Yeah... Ugh, and there's no way to archive PMs any more? What the hell, Bethesda?

Boy we're off track here. Must be because it's after midnight on a Saturday/Sunday.

Anyway, If you go into the Message threads themselves, there is a "Print/Download" button that will archive them for you. Unless it doesn't work...didn't try it.
User avatar
Kortniie Dumont
 
Posts: 3428
Joined: Wed Jan 10, 2007 7:50 pm

Post » Sat Feb 19, 2011 1:05 am

:celebration:

ah-hem....certainly might use this sometime in the future...
User avatar
James Smart
 
Posts: 3362
Joined: Sun Nov 04, 2007 7:49 pm

Post » Sat Feb 19, 2011 1:22 am

Boy we're off track here. Must be because it's after midnight on a Saturday/Sunday.

Anyway, If you go into the Message threads themselves, there is a "Print/Download" button that will archive them for you. Unless it doesn't work...didn't try it.

Aha! Thanks!

Argh! I have to do them one at a time? ARgh!

Well, I deleted 5. I really don't know, I don't want to lose anything but going through all of the old PMs that are still in the single format is just... I'm not doing it right now.

:celebration:

ah-hem....certainly might use this sometime in the future...

Just e-mail me when you want it.
User avatar
Tina Tupou
 
Posts: 3487
Joined: Fri Mar 09, 2007 4:37 pm

Post » Fri Feb 18, 2011 10:30 pm

Excitement... not in the least because you used the word "portmanteau." My love for this word knows no bounds.
User avatar
April D. F
 
Posts: 3346
Joined: Wed Mar 21, 2007 8:41 pm

Post » Sat Feb 19, 2011 12:18 am

And it's out! Gratz on the release (Love the new name). Here's to robust code, you and all the time you're now going to spend on ARES :foodndrink:
User avatar
John Moore
 
Posts: 3294
Joined: Sun Jun 10, 2007 8:18 am

Post » Sat Feb 19, 2011 6:13 am

...all the time you're now going to spend on ARES :foodndrink:


Oh, you cheeky little sneak... I was content with trying to psychically influence him XD
User avatar
lydia nekongo
 
Posts: 3403
Joined: Wed Jul 19, 2006 1:04 pm

Post » Sat Feb 19, 2011 7:25 am

Yay! Congraz man! This is going to fun! :celebration:
User avatar
Benji
 
Posts: 3447
Joined: Tue May 15, 2007 11:58 pm

Post » Sat Feb 19, 2011 3:23 am

ohohoh and now things are going to get lots of fun. awesome :D
User avatar
Jessie Rae Brouillette
 
Posts: 3469
Joined: Mon Dec 11, 2006 9:50 am

Post » Sat Feb 19, 2011 1:55 am

Excitement...
And it's out! Gratz on the release (Love the new name). Here's to robust code
Yay! Congraz man! This is going to fun! :celebration:
ohohoh and now things are going to get lots of fun. awesome :D

Thank you all!

not in the least because you used the word "portmanteau." My love for this word knows no bounds.

Indeed, it is an excellent word.

you and all the time you're now going to spend on ARES :foodndrink:
Oh, you cheeky little sneak... I was content with trying to psychically influence him XD

*grumbles something about slavedrivers* All right, all right! :P
User avatar
Verity Hurding
 
Posts: 3455
Joined: Sat Jul 22, 2006 1:29 pm

Post » Sat Feb 19, 2011 2:30 am

I hadn't noticed the release thread, but http://cs.elderscrolls.com/constwiki/index.php/Special:Recentchanges is hard to miss. Congrats on the release! :clap:
User avatar
Phoenix Draven
 
Posts: 3443
Joined: Thu Jun 29, 2006 3:50 am

Post » Fri Feb 18, 2011 8:17 pm

:celebration:
User avatar
Hearts
 
Posts: 3306
Joined: Sat Oct 20, 2007 1:26 am

Post » Fri Feb 18, 2011 11:24 pm

Would this be able to replace a weapon's texture as it gets more worn out? Because that would be very cool.
Or would the texture not update until a load?
User avatar
Gisela Amaya
 
Posts: 3424
Joined: Tue Oct 23, 2007 4:29 pm

Post » Sat Feb 19, 2011 3:01 am

I hadn't noticed the release thread, but http://cs.elderscrolls.com/constwiki/index.php/Special:Recentchanges is hard to miss. Congrats on the release! :clap:

Thanks! Yeah, I was actually a little worried that I'd let the cat of the bag a bit early doing that, but then I realized that no one but you and I pay attention to it... (sadness)

:celebration:

:celebration:

Would this be able to replace a weapon's texture as it gets more worn out? Because that would be very cool.
Or would the texture not update until a load?

Yes, but you'd need to reload, as you said. Without a way to refresh models, I'm not sure what good that will do.
User avatar
Benito Martinez
 
Posts: 3470
Joined: Thu Aug 30, 2007 6:33 am

Post » Sat Feb 19, 2011 6:35 am

:celebration:

:celebration:


:rofl:


Currently trying to implement this into my Shield on Back-Plugin (Script only, of course; just like I do most of the time ;)), didn't come to the part I don't understand so far. :P


...


Well, but I have two Questions already:
  • Where to put the new String in http://cs.elderscrolls.com/constwiki/index.php/NifSetNthExtraDataString?
    Before the ExtraDataID (i.e.: (bool:success) NifSetNthExtraDataString string:NewValue short:ExtraDataID short:NifID)?
  • Child/ExtraDataID is a Index starting at 0 with its highest number being ( NifGetNumChildren/ExtraData - 1 ), right?




Anyway, great work. :clap:
User avatar
Robert Devlin
 
Posts: 3521
Joined: Mon Jul 23, 2007 2:19 pm

Post » Sat Feb 19, 2011 1:17 am

You're correct on both. Fixed the NifSetNthExtraDataString page.
User avatar
Brandi Norton
 
Posts: 3334
Joined: Fri Feb 09, 2007 9:24 pm

Post » Sat Feb 19, 2011 3:14 am

OK, thank you. :)


Already got another question:
What does NifGetChildIndexByName return if no child has the specified name?
-1?
User avatar
Bitter End
 
Posts: 3418
Joined: Fri Sep 08, 2006 11:40 am

Post » Sat Feb 19, 2011 3:35 am

Correct. Will update that page too.
User avatar
Cameron Garrod
 
Posts: 3427
Joined: Sat Jun 30, 2007 7:46 am

Post » Sat Feb 19, 2011 1:50 am

:D


Next one:


...



Damn, can't think of anything to make you update Wiki-Pages again. ;)




Thanks. :)
User avatar
Emma Parkinson
 
Posts: 3401
Joined: Wed Jul 26, 2006 5:53 pm

Post » Sat Feb 19, 2011 5:46 am

Damn, can't think of anything to make you update Wiki-Pages again. ;)


Here′s a small one I noticed, but it′s kinda an important one: :)


http://cs.elderscrolls.com/constwiki/index.php/Category:NifSE in the example it reads

"let nifID := NifOpen filepath 1"

while it should read "let nifID := NifOpen $filepath 1"


To be honest I wasn′t sure myself if the dollar was needed, but my first test crashed instantly, and then I noticed the correct syntax in your test esp script, which fixed the issue. :)
User avatar
Assumptah George
 
Posts: 3373
Joined: Wed Sep 13, 2006 9:43 am

Post » Fri Feb 18, 2011 10:13 pm

By the way, I gave your CSE-Plugin interop suggestion some thought. If you're up for it, how about setting up the message system to dispatch a pointer to a std::map that stores command names as keys and their appropriate URLs as values ? A thread safe implementation of a similar database on my end would be easier to work with than waiting for a pingback from plugins inside the context menu button's function context.
User avatar
Bad News Rogers
 
Posts: 3356
Joined: Fri Sep 08, 2006 8:37 am

Post » Sat Feb 19, 2011 3:39 am

@ Skycaptain: Right you are, meh, I meant to double-check that. Anyway, fixed.

@ shadeMe: Sure, I can do that.
User avatar
Peter lopez
 
Posts: 3383
Joined: Mon Sep 10, 2007 5:55 pm

Next

Return to IV - Oblivion