Page 6 of 9

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 10:56 am
by Marilú
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.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Thu Sep 02, 2010 12:20 am
by alicia hillier
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:

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 9:25 pm
by Stat Wrecker
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

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 4:16 pm
by jasminε

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.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 2:36 pm
by cosmo valerga
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!

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 1:49 pm
by Connie Thomas
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?

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 7:38 pm
by Sherry Speakman
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 :(

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 12:47 pm
by Alexis Acevedo
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. :)

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 3:40 pm
by Chris Cross Cabaret Man
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).

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Thu Sep 02, 2010 1:41 am
by El Khatiri
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?

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 3:13 pm
by u gone see
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.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 3:01 pm
by Mr.Broom30
No comment on these?

Unhelpful post edited.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 2:08 pm
by loste juliana
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?

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 9:57 am
by Myles
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! :)

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Thu Sep 02, 2010 12:53 am
by mishionary
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.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 10:59 pm
by CArla HOlbert
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'?

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 9:59 am
by Britney Lopez
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.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 4:37 pm
by Leonie Connor
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.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 3:16 pm
by Alexandra walker
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.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 8:01 pm
by Danny Blight
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...

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 7:54 pm
by Angela
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.

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 12:21 pm
by Nathan Risch
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)

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 7:43 pm
by Miss Hayley
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

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 10:46 pm
by Zoe Ratcliffe
I think for the most part you need to edit animations for that to happen, which means it'll be a NifSE thing... someday...

[RELz] Oblivion Script Extender (OBSE) 0019b

PostPosted: Wed Sep 01, 2010 10:33 am
by Daniel Holgate
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?