[Alpha] NifSE v1.0

Post » Fri Feb 18, 2011 8:29 pm

Heh, yes. I get this:
tes4_bsa.obj : error LNK2001: unresolved external symbol _inflateInit_tes4_bsa.obj : error LNK2001: unresolved external symbol _inflateEndtes4_bsa.obj : error LNK2001: unresolved external symbol _inflate

Where tes4_bsa.cpp is the BSA reader that uses zlib, and inflate(), inflateInit(), and inflateEnd() are functions from zlib. zlibstat.lib is listed in the Additional Dependencies section for the project, and the folder where zlibstat.lib can be found is listed in the Library Directories in the VC++ settings, sooo... I don't really know what to do.
User avatar
Danial Zachery
 
Posts: 3451
Joined: Fri Aug 24, 2007 5:41 am

Post » Sat Feb 19, 2011 3:13 am

Heh, yes. I get this:
tes4_bsa.obj : error LNK2001: unresolved external symbol _inflateInit_tes4_bsa.obj : error LNK2001: unresolved external symbol _inflateEndtes4_bsa.obj : error LNK2001: unresolved external symbol _inflate

Where tes4_bsa.cpp is the BSA reader that uses zlib, and inflate(), inflateInit(), and inflateEnd() are functions from zlib. zlibstat.lib is listed in the Additional Dependencies section for the project, and the folder where zlibstat.lib can be found is listed in the Library Directories in the VC++ settings, sooo... I don't really know what to do.
You seem to have set it up correctly. See if defining the ZLIB_WINAPI macro helps.
User avatar
Vicki Gunn
 
Posts: 3397
Joined: Thu Nov 23, 2006 9:59 am

Post » Fri Feb 18, 2011 5:15 pm

The who to the what now?
User avatar
Lizbeth Ruiz
 
Posts: 3358
Joined: Fri Aug 24, 2007 1:35 pm

Post » Sat Feb 19, 2011 7:44 am

The who to the what now?
Add #define ZLIB_WINAPI at the very beginning of tes_bsa.cpp.
User avatar
NIloufar Emporio
 
Posts: 3366
Joined: Tue Dec 19, 2006 6:18 pm

Post » Fri Feb 18, 2011 8:09 pm

I didn't write tes4_bsa, Timeslip did, and I know it never needed that before.... Regardless, it didn't work.
User avatar
saxon
 
Posts: 3376
Joined: Wed Sep 19, 2007 2:45 am

Post » Fri Feb 18, 2011 11:38 pm

I didn't write tes4_bsa, Timeslip did, and I know it never needed that before.... Regardless, it didn't work.
Thought as much. I wonder if I missed something while building the library - I shall take a look.
User avatar
Auguste Bartholdi
 
Posts: 3521
Joined: Tue Jun 13, 2006 11:20 am

Post » Sat Feb 19, 2011 1:00 am

Hello,

I have a remark on the example in the http://cs.elderscrolls.com/constwiki/index.php/Category:NifSE

============
ref playerWeapon
string_var filepath
short nifID

Begin GameMode

if ( playerWeapon != player.GetEquippedObject 16 )
if ( playerWeapon )
let filepath := NifGetOriginalPath nifID
SetModelPath filepath playerWeapon
NifClose nifID
endif
let playerWeapon := player.GetEquippedObject 16
let filepath := GetModelPath playerWeapon
let nifID := NifOpen $filepath 1
let filepath := NifGetPath nifID
SetModelPath filepath playerWeapon
endif

End

============

There is an OBSE message: "More args provided than expected by fonction or command"
I had to modify in the following way for to work:
let filepath := NifGetOriginalPath
User avatar
Emily Jones
 
Posts: 3425
Joined: Mon Jul 17, 2006 3:33 pm

Post » Sat Feb 19, 2011 8:03 am

That is very odd. This is when you try to save the script? I just double-checked the code - it definitely expects one short variable. I don't know why that would give you trouble. Have you checked obse.log for possible issues?

By the way, everyone: HeX has found a pair of bugs! First, NifOpen doesn't correctly find the first available number - it just goes ahead and gives every Nif opened the 0 ID. This won't conflict across mods (since nif's are ID'd by mod first and nif second), but it basically means every mod can only open one nif at a time. Second, rotations are behaving bizarrely for him, but I'm afraid I don't know enough of the details of how rotation matrices work just yet to figure out what the screw up is. Working on it.

These are bugs and I will fix them as soon as I can - I finally have bought some 91% isopropylalcohol and currently have the processor sort of sitting on top of a paper towel soaked with it, which hopefully will clean off any problems. Then I'll try it again in my computer - if it works, that'll be awesome. I still need to figure out this zlib business...
User avatar
BaNK.RoLL
 
Posts: 3451
Joined: Sun Nov 18, 2007 3:55 pm

Post » Sat Feb 19, 2011 3:38 am

best of luck in getting your processor back to business :D
User avatar
Leilene Nessel
 
Posts: 3428
Joined: Sun Apr 15, 2007 2:11 am

Post » Fri Feb 18, 2011 7:31 pm

Yeah... cleaned it off pretty thoroughly, re-pasted the correct side this time, reinstalled it and the fan, and still no dice - press power, the light flashes and the fans start, and then immediately stop and the light goes out.

So... is there any way to definitively prove that the processor is dead? Alternatively, how about the motherboard - if some of this stuff got in the socket, that could mean that the mobo's dead too - or the mobo's dead and not the processor, potentially (unlikely). Is there anything I can do to be sure one way or another on this?
User avatar
yermom
 
Posts: 3323
Joined: Mon Oct 15, 2007 12:56 pm

Post » Fri Feb 18, 2011 11:53 pm

Yeah... cleaned it off pretty thoroughly, re-pasted the correct side this time, reinstalled it and the fan, and still no dice - press power, the light flashes and the fans start, and then immediately stop and the light goes out.

So... is there any way to definitively prove that the processor is dead? Alternatively, how about the motherboard - if some of this stuff got in the socket, that could mean that the mobo's dead too - or the mobo's dead and not the processor, potentially (unlikely). Is there anything I can do to be sure one way or another on this?


Well there′s some shops that can reprogram your BIOS chip, and most places can test your PSU, but I don′t know if many places are willing to mount a mobo, or alternatively have spare mobos to test CPUs with.

Many mobos have beep codes or LED displays for diagnostics, so that you can usually tell what′s wrong in a′situation like this. If the Mobo is missing any diagnostics, I think you are out of luck unless your friend has either compatible CPU or compatible mobo to test either part with.



But you know what′s funny? It could be your PSU just as well. My friend had a pretty new PSU, we went on our summer cottage for fishing, and in the evening launched he′s PC to play some football. "Beep beep beep - [shutdown]". Never said a thing after that.

We were certain it was the mobo, cause it was giving the beep codes (we no manual to check them though) and after that absolutely nothing, and there was no electric smell or anything, and cause it was totally non-responsive . We drove to the nearest small town the next day, and asked if they had a compatible new mobo. They didn′t have. We had the PC with us; and the shop owner insisted that he checks the PSU.


And it was the PSU. Nothing wrong with the mobo. So...you never know, my instincts were totally wrong, cause it would have made more sense for the mobo to be dead, it was old as well. I would have thought the PSU gives it up when it goes down, goes with some "fireworks", this was so sneaky, and it was odd we couldn′t make the system repeat the beeps, it′s like it remembered the broken PSU and refused to try again. :P


Anyways, just saying...that you can at least easily test at places that sell components. :)
User avatar
CRuzIta LUVz grlz
 
Posts: 3388
Joined: Fri Aug 24, 2007 11:44 am

Post » Sat Feb 19, 2011 7:51 am

I don't know any place like that around here (though, I live in New York City - I'm sure there are quite literally hundreds - I just don't know where they are), but meh. The PSU is kind of new but not very new, so I doubt its age is a factor and I know it worked before (the previous PSU had died after being funky for quite a while), plus there is the entirely-unlikely-to-be-a-coincidence that this occurred after I took the CPU out, cleaned the old paste off, repasted it and got some on the contacts, etc. The chances of it not being the CPU and/or the socket seem exceedingly slim...
User avatar
Iain Lamb
 
Posts: 3453
Joined: Sat May 19, 2007 4:47 am

Post » Sat Feb 19, 2011 2:15 am

I don't know any place like that around here (though, I live in New York City - I'm sure there are quite literally hundreds - I just don't know where they are), but meh. The PSU is kind of new but not very new, so I doubt its age is a factor and I know it worked before (the previous PSU had died after being funky for quite a while), plus there is the entirely-unlikely-to-be-a-coincidence that this occurred after I took the CPU out, cleaned the old paste off, repasted it and got some on the contacts, etc. The chances of it not being the CPU and/or the socket seem exceedingly slim...


Yeah, I know...just saying you never know. :)


Sometimes the fact that nothing seems to fix a problem is in fact an evidence that it′s not the same problem anymore. Like when you are fixing a bug in the code, and nothing makes sense - then finally you realise there′s TWO bugs, or your fix is causing a second bug, causing the strange "nothing seems to help" situation where nothing that should help simply doesn′t.

So it just occured to me that since a little paste, especially since you cleaned it, shouldn′t cause you that much headache, maybe it IS in fact about a very unlikely coincidence. Most likely not, but before you go out and buy a new mobo/CPU you should probably rule out the possiblity entirely. :)
User avatar
Francesca
 
Posts: 3485
Joined: Thu Jun 22, 2006 5:26 pm

Post » Sat Feb 19, 2011 7:33 am

Yeah, I know...just saying you never know. :)


Sometimes the fact that nothing seems to fix a problem is in fact an evidence that it′s not the same problem anymore. Like when you are fixing a bug in the code, and nothing makes sense - then finally you realise there′s TWO bugs, or your fix is causing a second bug, causing the strange "nothing seems to help" situation where nothing that should help simply doesn′t.

So it just occured to me that since a little paste, especially since you cleaned it, shouldn′t cause you that much headache, maybe it IS in fact about a very unlikely coincidence. Most likely not, but before you go out and buy a new mobo/CPU you should probably rule out the possiblity entirely. :)

I don't suppose you know what type of thermal paste you used was?

Some of them are electrically conductive, in which case, that's really bad for obvious reasons. Some of them aren't, though.
User avatar
Shelby Huffman
 
Posts: 3454
Joined: Wed Aug 08, 2007 11:06 am

Post » Sat Feb 19, 2011 6:35 am

Arctic Silver 5. I'm told it's about as minimally electrically conductive as these things come off the shelf.
User avatar
Marine x
 
Posts: 3327
Joined: Thu Mar 29, 2007 4:54 am

Post » Sat Feb 19, 2011 7:08 am

Then I'll try it again in my computer - if it works, that'll be awesome. I still need to figure out this zlib business...
D-oh! I knew I was forgetting something :facepalm: I'll take a look right away.
User avatar
Cagla Cali
 
Posts: 3431
Joined: Tue Apr 10, 2007 8:36 am

Post » Sat Feb 19, 2011 8:41 am

That is very odd. This is when you try to save the script? I just double-checked the code - it definitely expects one short variable. I don't know why that would give you trouble. Have you checked obse.log for possible issues?

Hello,

Yes, when i try to save it.

I download NifSE here: http://www.tesnexus.com/downloads/file.php?id=21292
(NifScript.dll 06/18/2009)

My obse_editor.log:

OBSE editor: initialize (version = 18.6 01020000)
oblivion root = C:\Program Files\Bethesda Softworks\Oblivion\
plugin directory = C:\Program Files\Bethesda Softworks\Oblivion\Data\OBSE\Plugins\
checking plugin C:\Program Files\Bethesda Softworks\Oblivion\Data\OBSE\Plugins\\NifScript.dll
SetOpcodeBase 000024F0
RegisterCommand NifGetAltGrip (24F0)
RegisterCommand NifGetOffHand (24F1)
RegisterCommand NifGetBackShield (24F2)
RegisterCommand NifOpen (24F3)
RegisterCommand NifClose (24F4)
RegisterCommand NifGetNthExtraDataName (24F5)
RegisterCommand NifGetNthExtraDataType (24F6)
RegisterCommand NifGetExtraDataTypeByName (24F7)
RegisterCommand NifSetNthExtraDataString (24F8)
RegisterCommand NifSetExtraDataStringByName (24F9)
RegisterCommand NifDeleteNthExtraData (24FA)
RegisterCommand NifDeleteExtraDataByName (24FB)
RegisterCommand NifGetPath (24FC)
RegisterCommand NifGetNthExtraDataString (24FD)
RegisterCommand NifGetExtraDataStringByName (24FE)
plugin C:\Program Files\Bethesda Softworks\Oblivion\Data\OBSE\Plugins\\NifScript.dll (00000001 NifScript 00000001) loaded correctly
checking plugin C:\Program Files\Bethesda Softworks\Oblivion\Data\OBSE\Plugins\\OBSE_Elys_Pluggy.dll
SetOpcodeBase 00002330
RegisterCommand GetEsp (2330)
RegisterCommand CreateArray (2331)
RegisterCommand DestroyArray (2332)
RegisterCommand ArraySize (2333)
RegisterCommand ArrayCount (2334)
RegisterCommand SetInArray (2335)
RegisterCommand SetFloatInArray (2336)
RegisterCommand GetInArray (2337)
RegisterCommand GetTypeInArray (2338)
RegisterCommand RemInArray (2339)
RegisterCommand FindInArray (233A)
RegisterCommand FindFloatInArray (233B)
RegisterCommand SetRefInArray (233C)
RegisterCommand FindRefInArray (233D)
RegisterCommand CopyArray (233E)
RegisterCommand ArrayEsp (233F)
RegisterCommand ArrayProtect (2340)
RegisterCommand FirstInArray (2341)
RegisterCommand DestroyAllArrays (2342)
RegisterCommand PackArray (2343)
RegisterCommand CreateString (2344)
RegisterCommand DestroyString (2345)
RegisterCommand SetString (2346)
RegisterCommand StringEsp (2347)
RegisterCommand StringProtect (2348)
RegisterCommand StringLen (2349)
RegisterCommand DestroyAllStrings (234A)
RegisterCommand StringSetName (234B)
RegisterCommand StringGetName (234C)
RegisterCommand StringMsg (234D)
RegisterCommand StringCat (234E)
RegisterCommand UserFileExists (234F)
SetOpcodeBase 00002378
RegisterCommand RenFile (2378)
RegisterCommand DelFile (2379)
RegisterCommand StringToTxtFile (237A)
RegisterCommand CopyString (237B)
RegisterCommand IntToString (237C)
RegisterCommand FloatToString (237D)
RegisterCommand RefToString (237E)
RegisterCommand IniReadInt (237F)
RegisterCommand IniReadFloat (2380)
RegisterCommand IniReadRef (2381)
RegisterCommand IniWriteInt (2382)
RegisterCommand IniWriteFloat (2383)
RegisterCommand IniWriteRef (2384)
RegisterCommand IniKeyExists (2385)
RegisterCommand IniDelKey (2386)
RegisterCommand EspToString (2387)
RegisterCommand IniReadString (2388)
RegisterCommand IniWriteString (2389)
RegisterCommand ModRefEsp (238A)
RegisterCommand GetRefEsp (238B)
RegisterCommand StringToRef (238C)
RegisterCommand StringCmp (238D)
RegisterCommand FileToString (238E)
RegisterCommand StringPos (238F)
RegisterCommand StringToInt (2390)
RegisterCommand StringToFloat (2391)
RegisterCommand ArrayCmp (2392)
RegisterCommand StringMsgBox (2393)
RegisterCommand StringIns (2394)
RegisterCommand StringRep (2395)
RegisterCommand IntToHex (2396)
RegisterCommand LC (2397)
SetOpcodeBase 000023B0
RegisterCommand FromTSFC (23B0)
RegisterCommand ToTSFC (23B1)
RegisterCommand StrLC (23B2)
RegisterCommand CreateEspBook (23B3)
RegisterCommand FmtString (23B4)
RegisterCommand FixName (23B5)
RegisterCommand ResetName (23B6)
RegisterCommand HasFixedName (23B7)
RegisterCommand csc (23B8)
RegisterCommand StringSetNameEx (23B9)
RegisterCommand StringGetNameEx (23BA)
RegisterCommand FixNameEx (23BB)
RegisterCommand IniGetNthSection (23BC)
RegisterCommand IniSectionsCount (23BD)
RegisterCommand RunBatString (23BE)
RegisterCommand Halt (23BF)
RegisterCommand RefToLong (23C0)
RegisterCommand LongToRef (23C1)
RegisterCommand FindFirstFile (23C2)
RegisterCommand FindNextFile (23C3)
RegisterCommand GetFileSize (23C4)
RegisterCommand NewHudS (23C5)
RegisterCommand DelHudS (23C6)
RegisterCommand ScreenInfo (23C7)
RegisterCommand HudS_X (23C8)
RegisterCommand HudS_SclX (23C9)
RegisterCommand HudS_Show (23CA)
RegisterCommand HudS_Opac (23CB)
RegisterCommand HudS_Align (23CC)
RegisterCommand AutoSclHudS (23CD)
RegisterCommand HudS_Y (23CE)
RegisterCommand HudSEsp (23CF)
RegisterCommand HudSProtect (23D0)
RegisterCommand HudsInfo (23D1)
RegisterCommand DelAllHudSs (23D2)
RegisterCommand HudS_L (23D3)
RegisterCommand rcsc (23D4)
RegisterCommand HudS_SclY (23D5)
RegisterCommand NewHudT (23D6)
RegisterCommand DelHudT (23D7)
RegisterCommand HudT_X (23D8)
RegisterCommand HudT_SclX (23D9)
RegisterCommand HudT_Show (23DA)
RegisterCommand HudT_Opac (23DB)
RegisterCommand HudT_Align (23DC)
RegisterCommand AutoSclHudT (23DD)
RegisterCommand HudT_Y (23DE)
RegisterCommand HudTEsp (23DF)
RegisterCommand HudTProtect (23E0)
RegisterCommand HudTInfo (23E1)
RegisterCommand DelAllHudTs (23E2)
RegisterCommand HudT_L (23E3)
RegisterCommand HudT_SclY (23E4)
RegisterCommand PauseBox (23E5)
RegisterCommand KillMenu (23E6)
RegisterCommand SetHudT (23E7)
RegisterCommand HudT_Text (23E8)
RegisterCommand HudS_Tex (23E9)
RegisterCommand SanString (23EA)
RegisterCommand IsHUDEnabled (23EB)
RegisterCommand IsPluggyDataReset (23EC)
RegisterCommand FromOBSEString (23ED)
RegisterCommand ToOBSEString (23EE)
RegisterCommand HudT_Font (23EF)
SetOpcodeBase 000023FF
RegisterCommand PlgySpcl (23FF)
plugin C:\Program Files\Bethesda Softworks\Oblivion\Data\OBSE\Plugins\\OBSE_Elys_Pluggy.dll (00000001 OBSE_Elys_Pluggy 00000084) loaded correctly
patched


(Your TESCS Wiki link: http://tinyurl.com/TESCS is broken)
User avatar
Assumptah George
 
Posts: 3373
Joined: Wed Sep 13, 2006 9:43 am

Post » Sat Feb 19, 2011 2:24 am

Hello,

Yes, when i try to save it.

I download NifSE here: http://www.tesnexus.com/downloads/file.php?id=21292
(NifScript.dll 06/18/2009)
You're using one of the pre-alpha builds apparently. Grab the latest from the first post and get rid of NifScript.dll - It's been deprecated.
User avatar
sally R
 
Posts: 3503
Joined: Mon Sep 25, 2006 10:34 pm

Post » Sat Feb 19, 2011 4:25 am

You're using one of the pre-alpha builds apparently. Grab the latest from the first post and get rid of NifScript.dll - It's been deprecated.

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

It is Nevertheless written:

Download:
from TES Nexus

You can write the link here please?
User avatar
Rob Smith
 
Posts: 3424
Joined: Wed Oct 03, 2007 5:30 pm

Post » Sat Feb 19, 2011 5:53 am

Right, time to share my rotation woes and see if anyone can confirm them for DW (or tell me I'm an idiot).

I'm starting simple, just reading the rotation data and feeding it straight back to the nif:

let file_path1 := GetModelPath Weapon
let nifIDarchive1 := NifOpen $file_path1 1
let children := NifGetNumChildren nifIDarchive1
while(counter < children)
let array := NifGetNthChildLocalRotation counter nifIDarchive1
let one := array[0][0]
let two := array[0][1]
let three := array[0][2]
let four := array[1][0]
let five := array[1][1]
let six := array[1][2]
let seven := array[2][0]
let eight := array[2][1]
let nine := array[2][2]
NifSetNthChildLocalRotationTEMP one two three four five six seven eight nine counter nifIDarchive1
Printc "Local Rotation: %2f, %2f, %2f, %2f, %2f, %2f, %2f, %2f, %2f" one two three four five six seven eight nine
set counter to counter + 1
loop
let file_path1 := NifGetPath nifIDarchive1
SetModelPathEx "%z" file_path1 newWeapon

The effect is to massively scale the weapon. Also the rotation data doesn't seem correct. Mostly 0s with a couple of 9s or 1s for the first value of each inner array. As DW said, it's likely to be a bug, but I'm sure it would help if someone else could confirm it for him.

HeX
User avatar
Kit Marsden
 
Posts: 3467
Joined: Thu Jul 19, 2007 2:19 pm

Post » Sat Feb 19, 2011 6:16 am

HeX, I found the bug - NifGetLocalRotation is returning the upper left 3x3 matrix of the transform matrix, instead of the rotation matrix. This is dumb on my part, sorry. On the other hand, NifSetLocalRotationTEMP does set the nif's rotation matrix, so I don't see how it could scale things...

Hello,

Yes, when i try to save it.

I download NifSE here: http://www.tesnexus.com/downloads/file.php?id=21292

That is NifScript, which is a predecessor to NifSE. It is not NifSE, and of those functions listed in obse.log, only the first two actually work. You need to e-mail me at dragoonwraith [at] gmail.com to get NifSE - it is not yet available anywhere for download. That is your problem. I believe I made this quite clear in the OP, the Wiki, and the readme...
User avatar
Erin S
 
Posts: 3416
Joined: Sat Jul 29, 2006 2:06 pm

Post » Fri Feb 18, 2011 8:44 pm

Yes naturally, I am going to make it.

Thank you DragoonWraith!
User avatar
N3T4
 
Posts: 3428
Joined: Wed Aug 08, 2007 8:36 pm

Post » Fri Feb 18, 2011 5:25 pm

NifSE is now on http://code.google.com/p/nifse/! You can get the alpha there, as well as the source code. Whee! Figuring out SVN for this was a huge pain, heh.
User avatar
FABIAN RUIZ
 
Posts: 3495
Joined: Mon Oct 15, 2007 11:13 am

Post » Sat Feb 19, 2011 4:07 am

Mmm. Tasty code :drool:

I'm so relieved that you were able to get everything back :foodndrink:
User avatar
Lalla Vu
 
Posts: 3411
Joined: Wed Jul 19, 2006 9:40 am

Post » Fri Feb 18, 2011 7:00 pm

NifSE is now on http://code.google.com/p/nifse/! You can get the alpha there, as well as the source code. Whee! Figuring out SVN for this was a huge pain, heh.
Hooray! I see that you've uploaded the project's NCB files as well. You don't have to, as it's VS' IntelliSense database.
User avatar
TIhIsmc L Griot
 
Posts: 3405
Joined: Fri Aug 03, 2007 6:59 pm

PreviousNext

Return to IV - Oblivion