[RELz] Oblivion Script Extender (OBSE) 0019b

Post » Wed Sep 01, 2010 10:56 am

Would it be possible to have a function like this:
(height:float) GetLandHeight CellX CellY

I know this information is stored in the LAND records, specifically the VHGT subrecord (32bit float).

Yeah, I did some decoding recently on the LAND stuff with the same goal in mind, looks doable.

I do have an odd problem with ver19b.
Upgrading from ver18 to ver19b causes all my summoned creatures to vanish almost immediately. For example a zombie is merely visible, its duration is now less than 1 second.
When downgrading back to 18 all is fine again.

Is this an issue known to anyone?
(I do have a lot of mods running so maybe a problem on my side)

Sounds like we may have changed something in 0019b which has affected a mod.
Can you PM me your mod list, preferably pointing out any that affect magic in general and summoning spells in particular?
So if you could look into making EquipMe (or EquipItem2NS) equip all arrows (as the EquipMe docs says), that would be a great help.

Hmm, seems to be working as advertised here. Let me test it a little more and see if I can repro it. If you have a script that exhibits the problem feel free to post it.
I've been trying to get the TESCS to open with OBSE, but it crashes every time!It works fine without launching it via the loader, too. Note, however, that I have the Steam version of Oblivion - and am currently using Nehrim. However, I doubt these will have much bearing on the issue - the editor is not via Steam, and Nehrim is just another data file that the editor loads fine without OBSE enabled anyway! So, help would be much appreciated. I'm also using OBSE 19b, if that helps.

Steam or non-Steam doesn't matter. Nehrim might. I'd like to see what obse_editor.log looks like after a crash. In addition, if you want to help narrow it down a bit and have a few spare minutes, try any or all of the following:
-Make sure no OBSE plugins (.dll) are interfering by temporarily renaming your Data/Obse/Plugins folder
-Try running the CS without loading Nehrim in it.
-Try it with obse 0018.
User avatar
Marilú
 
Posts: 3449
Joined: Sat Oct 07, 2006 7:17 am

Post » Thu Sep 02, 2010 12:20 am

Doubt you need it, but for general information here's how to calculate the actual land height for any arbitrary point in the VHGT grid:
Spoiler
FLOAT32 LANDRecord::CalcHeight(const UINT32 &row, const UINT32 &column)    {    FLOAT32 fRetValue = http://forums.bethsoft.com/index.php?/topic/1142593-relz-oblivion-script-extender-obse-0019b/VHGT->offset * 8.0f;    for(UINT32 curRow = 0; curRow <= row; ++curRow)        fRetValue += (VHGT->VHGT[curRow][0] * 8.0f);    for(UINT32 curColumn = 1; curColumn <= column; ++curColumn)        fRetValue += (VHGT->VHGT[row][curColumn] * 8.0f);    return fRetValue;    }

Works great if you're only interested in a couple points. If you're wanting to calculate every point though, it'd be faster (but use more memory) to populate an array and return that :shrug:
User avatar
alicia hillier
 
Posts: 3387
Joined: Tue Feb 06, 2007 2:57 am

Post » Wed Sep 01, 2010 9:25 pm

Yeah, I did some decoding recently on the LAND stuff with the same goal in mind, looks doable.
Awesome, thanks again! I swear I'll stop making requests sometime soon! :P
User avatar
Stat Wrecker
 
Posts: 3511
Joined: Mon Sep 24, 2007 6:14 am

Post » Wed Sep 01, 2010 4:16 pm


Sounds like we may have changed something in 0019b which has affected a mod.
Can you PM me your mod list, preferably pointing out any that affect magic in general and summoning spells in particular?



I did some testing uninstalling mods and the culprit seems to be Oblivion Improved (probably its supreme magicka component). After uninstalling OI the duration of summons with 19b is fine (which is bad for me because I am very reluctant to remove OI). - If you still want my Modlist just say so.

Anyway, if somebody has an idea how to make OI work together with 19b I would appreciate it - if not I'll have to stick with 18.
User avatar
jasminε
 
Posts: 3511
Joined: Mon Jan 29, 2007 4:12 am

Post » Wed Sep 01, 2010 2:36 pm

Yeah, I did some decoding recently on the LAND stuff with the same goal in mind, looks doable.


YES! I've been waiting for something like that for ages, infact I have a mod almost done which merely requires that function for it's release. Good work!

When we get some havok functions, then you'll have fulfilled my function dreams!
User avatar
cosmo valerga
 
Posts: 3477
Joined: Sat Oct 13, 2007 10:21 am

Post » Wed Sep 01, 2010 1:49 pm

I did some testing uninstalling mods and the culprit seems to be Oblivion Improved (probably its supreme magicka component). After uninstalling OI the duration of summons with 19b is fine (which is bad for me because I am very reluctant to remove OI). - If you still want my Modlist just say so.

Anyway, if somebody has an idea how to make OI work together with 19b I would appreciate it - if not I'll have to stick with 18.

Can you provide a link to Oblivion Improved? Forum/nexus search aren't being very helpful.
YES! I've been waiting for something like that for ages, infact I have a mod almost done which merely requires that function for it's release. Good work!

When we get some havok functions, then you'll have fulfilled my function dreams!

What specifically do you need from havok?
User avatar
Connie Thomas
 
Posts: 3362
Joined: Sun Nov 19, 2006 9:58 am

Post » Wed Sep 01, 2010 7:38 pm

I tried to use the GetPlayerSkillAdvances, but in its present form, function resets the counter to 0 at the wrong time (not at the moment when I'd needed it):
Now it's counters gains zero at the moment when a character go to sleep and get a menu of bonus distribution of attributes per level.
But to predict the future bonus attributes - reset the counters should be earlier, when a player gets in-game message stating that he has trained enough skill to get a new level. And all the skills received later than that message - must belong to training the next level, as in-game counters do...

May be a do'nt undestand something, and GetPlayerSkillAdvances was designed for somfing else...

ps: sorry for my poor english :(
User avatar
Sherry Speakman
 
Posts: 3487
Joined: Fri Oct 20, 2006 1:00 pm

Post » Wed Sep 01, 2010 12:47 pm

Hmm, seems to be working as advertised here. Let me test it a little more and see if I can repro it. If you have a script that exhibits the problem feel free to post it.
I did some more testing, and found that it reliably works, with some quirks, and my previous testing came into the quirk each time.

If the arrows have not been equipped since last savgeame, EquipMe works completely as intended. However, if the arrows have already been equipped, and then unequipped, what's happening when using EquipMe seems to depend on how the arrows was unequipped.

If they got unequipped because another type of arrow was equipped, then it continues to work fine.
If they got unequipped by clicking on them in the inventory menu, the Inventory Referense functions treat the arrows as two stacks (even though the inventory menu displays them as one), one with 1 arrow and one with the rest, and regardless of which of the two stacks I use EquipMe on, the first stack (with only 1 arrow) gets equipped.
If they got unequipped using UnEquipNS, it seems that they stay as one stack if I don't open the inventory menu, but if I do, they become two stack for the Inventory Reference functions, behaving as they got unequipped by clicking on them.

Saving and then reloading the save resets them to one stack.


I have no idea why they are seen as two stacks, or why only one arrow gets equipped then. If you can do something about it, then I appreciate that, but if not, I can work relatively well around it, now that I know more about the issue. :)
User avatar
Alexis Acevedo
 
Posts: 3330
Joined: Sat Oct 27, 2007 8:58 pm

Post » Wed Sep 01, 2010 3:40 pm

Can you provide a link to Oblivion Improved? Forum/nexus search aren't being very helpful.


Here you go:
http://forum.elderscrollsgames.de/viewtopic.php?f=8&t=601 (Beware - German site :) )

(Just in case you don't know that mod) It is a very large german mod from New Raven which changes a lot (HUD, Translation, fixing tons of bugs, grafics...). It has an optional supreme magicka component (which I suspect to be the cause for my problem).
User avatar
Chris Cross Cabaret Man
 
Posts: 3301
Joined: Tue Jun 19, 2007 11:33 pm

Post » Thu Sep 02, 2010 1:41 am

Does OBSE have safe versions of the SetPos command? So that if one wishes to move an object's location that change doesn't remain fixed to the saved game?

If it doesn't, I'd like to request safe versions of that and Enable/Disable if possible.


No comment on these?
User avatar
El Khatiri
 
Posts: 3568
Joined: Sat Sep 01, 2007 2:43 am

Post » Wed Sep 01, 2010 3:13 pm

I have no idea why they are seen as two stacks, or why only one arrow gets equipped then.

I haven't done as extensive testing as TheNiceOne, but I'm getting the same behaviour when using PiiiP's quick-equip on stacks of arrows. I dug through its scripts, and as far as I can work out, it uses EquipItemNS. I've found that unequipping the equipped single arrow by clicking on it in the inventory causes the 2 stacks to merge into 1 again.

You might want to confirm with shadeMe what obse functions it uses though.
User avatar
u gone see
 
Posts: 3388
Joined: Tue Oct 02, 2007 2:53 pm

Post » Wed Sep 01, 2010 3:01 pm

No comment on these?

Unhelpful post edited.
User avatar
Mr.Broom30
 
Posts: 3433
Joined: Thu Nov 08, 2007 2:05 pm

Post » Wed Sep 01, 2010 2:08 pm

I wasn't asking to modify the functionality of SetPos, I was asking if it was possible to get a version of the command that can move things without becoming permanent in the save. I don't know how things work deep inside the engine but perhaps what I'm asking for isn't possible? Not even some way to tell it a particular call to the code shouldn't be saved as a permanent change?
User avatar
loste juliana
 
Posts: 3417
Joined: Sun Mar 18, 2007 7:37 pm

Post » Wed Sep 01, 2010 9:57 am

What specifically do you need from havok?


I may have mentioned it before here, but essentially I just need a function to detect when objects collide. Something like "OnTriggerStatic", because normally OnTrigger only registers actors, projectiles and havok objects. I've already written the code for a scripted projectile system, which can bounce off walls etc, but I was foiled by there not being any reliable way to detect collision geometry. My set up used some trigger zones surrounding the projectile, and if they were triggered by statics then it gives me the normals to the colliding surface, allowing the particle to bounce off at the correct angle.

Thanks! :)
User avatar
Myles
 
Posts: 3341
Joined: Sun Oct 21, 2007 12:52 pm

Post » Thu Sep 02, 2010 12:53 am

I wasn't asking to modify the functionality of SetPos, I was asking if it was possible to get a version of the command that can move things without becoming permanent in the save. I don't know how things work deep inside the engine but perhaps what I'm asking for isn't possible? Not even some way to tell it a particular call to the code shouldn't be saved as a permanent change?

I understand that, sorry for the unclear response. I guess a better answer would be: yes, this is possible with some work, but we would want to make sure we don't screw up a savegame in the process.
If you can tell me why you need this kind of functionality it will give me a better idea of how it might be implemented.
I may have mentioned it before here, but essentially I just need a function to detect when objects collide. Something like "OnTriggerStatic", because normally OnTrigger only registers actors, projectiles and havok objects. I've already written the code for a scripted projectile system, which can bounce off walls etc, but I was foiled by there not being any reliable way to detect collision geometry. My set up used some trigger zones surrounding the projectile, and if they were triggered by statics then it gives me the normals to the colliding surface, allowing the particle to bounce off at the correct angle.

Ok. Ian did a bunch of havok decoding a while back, it would be good to put it to use. I'll take a look.
User avatar
mishionary
 
Posts: 3414
Joined: Tue Feb 20, 2007 6:19 am

Post » Wed Sep 01, 2010 10:59 pm

I tried to load several savegames in Oblivion, after a two week hiatus. Except for an old savegame (from back when my character was new) the game crashes early into the savegame load. I removed several mods I had updated between playing sessions but that didn't seem to work. I opened up my obse.log file and noticed the following sequence, whenever I attempted to load one of the affected savegames:

loading from C:\Users\Jim's Account\Documents\My Games\Oblivion\Saves\Streamsave_2.obse
Reading mod list from co-save
Loading strings
Loading array variables
plugin has data in save file but no handler
plugin has data in save file but no handler
plugin has data in save file but no handler
OBSE: deinitialize

Is there a way to get OBSE to identify the plugin which left data in my save, but has no 'handler'?
User avatar
CArla HOlbert
 
Posts: 3342
Joined: Wed Feb 21, 2007 11:35 pm

Post » Wed Sep 01, 2010 9:59 am

Is OBSE works with CFF Explorer patched oblivion.exe?
I'm thinking about this "clearing large-address-aware flag (flags offset = 0000011E checksum offset = 00000160)".
There is some reason I can't check it myself by memory usage test ,so answer please.
User avatar
Britney Lopez
 
Posts: 3469
Joined: Fri Feb 09, 2007 5:22 pm

Post » Wed Sep 01, 2010 4:37 pm

All that line means is that OBSE calculates the CRC of Oblivion.exe (i.e. checks that you have an appropriate version of Oblivion) as if they LAA flag wasn't enabled (because changing the flag also changes the CRC value and would cause OBSE to not recognize your Oblivion if it didn't pretend that it wasn't set). It does not actually change the flag, just ignores it for the sake of the CRC.
User avatar
Leonie Connor
 
Posts: 3434
Joined: Mon Mar 12, 2007 4:18 pm

Post » Wed Sep 01, 2010 3:16 pm

I understand that, sorry for the unclear response. I guess a better answer would be: yes, this is possible with some work, but we would want to make sure we don't screw up a savegame in the process.
If you can tell me why you need this kind of functionality it will give me a better idea of how it might be implemented.


Basically I'm looking to have the various doors at the city gates moved out of the way so they won't snap back into position when someone reloads the game. My specific purpose for it may be a bit narrow, but it seems like it would be useful in general since I can't be the only one who wants to move persistent objects out of the way without risking those moves becoming permanent.

The game's engine has a bug where removing the persistent flag and setting it to "initially disabled" via the CS won't stick if the game is reloaded without dropping all the way to the desktop first. So I'd want to use the new command to handle moving those doors when a game is restarted/reloaded instead of relying on the flaky method in place now.

If it's not feasible then I can try and work something out where the model data is swapped out for something the player can just pass through without incident.
User avatar
Alexandra walker
 
Posts: 3441
Joined: Wed Sep 13, 2006 2:50 am

Post » Wed Sep 01, 2010 8:01 pm

I tried to load several savegames in Oblivion, after a two week hiatus. Except for an old savegame (from back when my character was new) the game crashes early into the savegame load. I removed several mods I had updated between playing sessions but that didn't seem to work. I opened up my obse.log file and noticed the following sequence, whenever I attempted to load one of the affected savegames:

loading from C:\Users\Jim's Account\Documents\My Games\Oblivion\Saves\Streamsave_2.obse
Reading mod list from co-save
Loading strings
Loading array variables
plugin has data in save file but no handler
plugin has data in save file but no handler
plugin has data in save file but no handler
OBSE: deinitialize

Is there a way to get OBSE to identify the plugin which left data in my save, but has no 'handler'?


I think someone mentioned on another thread that the plugin was OBGE v2...
User avatar
Danny Blight
 
Posts: 3400
Joined: Wed Jun 27, 2007 11:30 am

Post » Wed Sep 01, 2010 7:54 pm

I think someone mentioned on another thread that the plugin was OBGE v2...


I get this too and I've never run OBGE in any version, so it does it for other plugins as well. I'd also like to know which plugin has left traces behind after being removed, if at all possible.
User avatar
Angela
 
Posts: 3492
Joined: Mon Mar 05, 2007 8:33 am

Post » Wed Sep 01, 2010 12:21 pm

All that line means is that OBSE calculates the CRC of Oblivion.exe (i.e. checks that you have an appropriate version of Oblivion) as if they LAA flag wasn't enabled (because changing the flag also changes the CRC value and would cause OBSE to not recognize your Oblivion if it didn't pretend that it wasn't set). It does not actually change the flag, just ignores it for the sake of the CRC.

Thanks (uff)
User avatar
Nathan Risch
 
Posts: 3313
Joined: Sun Aug 05, 2007 10:15 pm

Post » Wed Sep 01, 2010 7:43 pm

I have a request for the coming MERP & Blade combat overhaul (which is by the way getting vastly improved anims!) that would be immensely helpful:

A copy of the "PlayGroup/LoopGroup/PickIdle" functions, but then with an additional parameter that determines the speed at which the animation is played.


It's probably not possible, since there don't seem to be any OBSE functions yet that actually affect the execution of animations, but I figured I'd ask anyway, since you keep surprising us with awesome new functions all the time.

Thanks for reading,

The MERP team
User avatar
Miss Hayley
 
Posts: 3414
Joined: Tue Jun 27, 2006 2:31 am

Post » Wed Sep 01, 2010 10:46 pm

I think for the most part you need to edit animations for that to happen, which means it'll be a NifSE thing... someday...
User avatar
Zoe Ratcliffe
 
Posts: 3370
Joined: Mon Feb 19, 2007 12:45 am

Post » Wed Sep 01, 2010 10:33 am

Well, the engine already changes the speed of animations for the normal attack animations, based on the speed of the weapon that is equipped by the actor. Editing the animations themselves would be far heavier on the system resources than making use of this feature that is already in the engine somewhere. In addition, if you would edit a copy of the animation file, you still need a way to force an actor to use that file instead of the original, and there are no functions for that at the moment.

I can't wait for the next version of NifSE though, merging NIF's will be great! Do you have an ETA?
User avatar
Daniel Holgate
 
Posts: 3538
Joined: Tue May 29, 2007 1:02 am

PreviousNext

Return to IV - Oblivion