Jump to content

BreakArmor for Vanilla Armors (Last Update: 130115)


Recommended Posts

My further armor making will be delayed a little because now I'm working on making stock boots for the armors I already made into high heeled versions using Real High Heels system

 

Oooh...I'd like to discuss this with you at some point. I've wanted to add armor boots for my Stock Real High Heels conversion.

Link to comment

My further armor making will be delayed a little because now I'm working on making stock boots for the armors I already made into high heeled versions using Real High Heels system

 

Oooh...I'd like to discuss this with you at some point. I've wanted to add armor boots for my Stock Real High Heels conversion.

 

Well, they probably won't be the nicest high heels there are since I'm still a blender noob ;)

Link to comment

OK, the bare-bones framework for a completely mesh-based break-undies system is now functional and ready for preliminary testing.

 

So, what does it do?

 

On load or game restart, the script runs an initialization function that processes the BreakUndies_Stock.ini and BreakUndies.ini files, if present (Note: there will be some console error spam. I haven't decided yet what I want to do with some of the variables, so they get angry when the ini file tries to set them).

 

First, the script checks for duplicates. If the mesh has not yet been processed, it does a FileExists check. If the nif does exist, it is added to the core array.

 

The main script currently runs once every three seconds. In its current form is simply scans equipped inventories of all nearby NPCs and checks the model paths for matches in the core array (each unique model path is a key that points to an array of compatible BU meshes). If the model path is found, it checks the current health of the item, converts that to an array key, and if the key doesn't match the current model, it switches the mesh with SetBipedModelPathEX and then hits the NPC with Update3D.

 

Please take a look and let me know what you think. Since this approach is entirely mesh based, it should work on any armor that uses a known base mesh.

 

That means, enchanted items should not be a problem.

 

Next, this is pretty bare bones. I have a number of performance tweaks in mind that should make the script run a bit more smoothly and allow the breakevents to be triggered by combat/spells rather than a periodic scan. In addition to performance, what features should be added?

 

I've left the BU messages out for the moment. Should I put them in?

 

To test it, disable any BU esps and esms. It just needs the models installed in the proper directories and the ini files in the ini directory.

Link to comment

My further armor making will be delayed a little because now I'm working on making stock boots for the armors I already made into high heeled versions using Real High Heels system

 

Oooh...I'd like to discuss this with you at some point. I've wanted to add armor boots for my Stock Real High Heels conversion.

 

Well' date=' they probably won't be the nicest high heels there are since I'm still a blender noob ;)

[/quote']

 

I'd still be very interested in seeing whatever you come up with.

Link to comment

 

 

OK' date=' the bare-bones framework for a completely mesh-based break-undies system is now functional and ready for preliminary testing.

 

So, what does it do?

 

On load or game restart, the script runs an initialization function that processes the BreakUndies_Stock.ini and BreakUndies.ini files, if present (Note: there will be some console error spam. I haven't decided yet what I want to do with some of the variables, so they get angry when the ini file tries to set them).

 

First, the script checks for duplicates. If the mesh has not yet been processed, it does a FileExists check. If the nif does exist, it is added to the core array.

 

The main script currently runs once every three seconds. In its current form is simply scans equipped inventories of all nearby NPCs and checks the model paths for matches in the core array (each unique model path is a key that points to an array of compatible BU meshes). If the model path is found, it checks the current health of the item, converts that to an array key, and if the key doesn't match the current model, it switches the mesh with SetBipedModelPathEX and then hits the NPC with Update3D.

 

Please take a look and let me know what you think. Since this approach is entirely mesh based, it should work on any armor that uses a known base mesh.

 

That means, enchanted items should not be a problem.

 

Next, this is pretty bare bones. I have a number of performance tweaks in mind that should make the script run a bit more smoothly and allow the breakevents to be triggered by combat/spells rather than a periodic scan. In addition to performance, what features should be added?

 

I've left the BU messages out for the moment. Should I put them in?

 

To test it, disable any BU esps and esms. It just needs the models installed in the proper directories and the ini files in the ini directory.

 

 

[/quote']

 

Well having those messages is kind of nice I think, also playing a sound when the brake occurs is nice

Link to comment

Well having those messages is kind of nice I think' date=' also playing a sound when the brake occurs is nice

[/quote']

 

It shouldn't be too big a deal to add them in. That's just a matter of adding more events to the breakevent script (and properly processing the messages from the ini file).

 

The big question is whether or not the breakundies events are triggering properly for anyone who tests it.

Link to comment

Oh and for some reason when I'm wearing iron armour whenever the message comes up telling me my armour has just been ripped or whatever I get a CTD... doesn't seem to happen with leather as thats the only other armour that I've tried at the moment. could it be the unofficial Oblivion patch? as that adds armour meshes to oblivion?

Link to comment

@Gerra6

 

-Break message is not a big deal and not so necessary. I doubt anyone even cares about message during battle or rape. Playing sound or shader is nice, let's add the feature later.

 

-What things will occur if new BUF doesn't have BUCmnFnc and plugins call it? Will it just ignore it or something bad happens?

 

-Lovers system has a feature that enables BU items to break during rape instead of undressing it. Don't forget to add forced break call (or whatever its way to work is) to maintain compatiblity.

 

-Theorically new BU can break male armor but there is no male BU that I'm aware of. I think you may want to prevent the scripts from run when an actor is male. or configurable by ini - female only by scripted default but male also if they put a proper code to ini. Current BU runs normally even on male just dosn't change the path.

 

- I think triggering the break event could be tricky. Running once every 5~10 seconds is fair enough for non combat situation, but even 3 seconds is too laggy when in combat. But you don't want fQuestDelayTime to get shorter when in combat because the combat itself drops our fps.

However if you do not care about 'accurate' break, it's ok. Honestly who does care when exactly their armors break? The important thing is that they do break.

 

I'm afraid we're the only ones who can try test run for this. Because we aren't playing Oblivion much now. So now, let's make a new clean install for convenience and see how it works.. :dodgy:

Link to comment

hey I was just wondering if its possible that when this is released could it have a BAIN installer? no probs if thats too much to ask :)

love what you've done with it so far... keep up the awesome work.

 

Let's see. Hm' date=' bash cannot read obmm script??

 

@Rad or Ave

Can you script those? I cannot, because I don't have bash. When it runs it currupts my files. So I deleted it long ago.

 

Oh and for some reason when I'm wearing iron armour whenever the message comes up telling me my armour has just been ripped or whatever I get a CTD... doesn't seem to happen with leather as thats the only other armour that I've tried at the moment. could it be the unofficial Oblivion patch? as that adds armour meshes to oblivion?

 

What iron armor? Rad87's or Avebrave's? Perhaps it's because of bad nif file. They may be currupted during PyFFI or sanitizing process. Thanks for pointing it.

Link to comment

@Gerra6

 

-Break message is not a big deal and not so necessary. I doubt anyone even cares about message during battle or rape. Playing sound or shader is nice' date=' let's add the feature later.

 

-What things will occur if new BUF doesn't have BUCmnFnc and plugins call it? Will it just ignore it or something bad happens?

 

[/quote']

 

I honestly have no idea. The idea behind this framework was streamline the BU system as much as possible. I took it on mostly because I wanted to see if this method would work.

 

At present it has no special calls, no dependencies, etc. All that is required for it to function is an ini file that contains the model paths, and the models in the required folders. All that is required for a break event is for the armor condition to drop.

 

***Although*** I have been thinking about having the code only run on NPCS engaged in combat.

 

-Lovers system has a feature that enables BU items to break during rape instead of undressing it. Don't forget to add forced break call (or whatever its way to work is) to maintain compatiblity.

 

I'll take a look at that. As long as the lovers call takes care of the condition degradation (which is how I think it works)' date=' the script should be fine.

 

-Theorically new BU can break male armor but there is no male BU that I'm aware of. I think you may want to prevent the scripts from run when an actor is male. or configurable by ini - female only by scripted default but male also if they put a proper code to ini. Current BU runs normally even on male just dosn't change the path.

 

I've added a short variable into the newest version that toggles whether or not to check males.

 

I've also added this

while( currentNPC )

if currentNPC.IsInCombat

...inventory check, etc...

endif

let currentNPC := GetNextRef

loop

 

So that it only runs on NPCs currently engaged in combat. I'll need to also check if the NPC is engaged in a lovers act.

 

 

- I think triggering the break event could be tricky. Running once every 5~10 seconds is fair enough for non combat situation' date=' but even 3 seconds is too laggy when in combat. But you don't want fQuestDelayTime to get shorter when in combat because the combat itself drops our fps.

However if you do not care about 'accurate' break, it's ok. Honestly who does care when exactly their armors break? The important thing is that they do break.

[/quote']

 

I've added this code

 

if player.IsInCombat

let fQuestDelayTime := 0.5

else

let fQuestDelayTime := 5

endif

 

Although I'm thinking about doing this instead:

 

Begin GameMode

let fQuestDelayTime := 5

...lots of code here...

if currentNPC.IsInCombat

let fQuestDelayTime := 0.5

 

Basically, at the start of every gamemode loop the delay time between loops is set to 5 seconds. If any scanned NPC (including the player) is in combat, it sets the loop delay time to 1/2 second.

 

 

I'm afraid we're the only ones who can try test run for this. Because we aren't playing Oblivion much now. So now' date=' let's make a new clean install for convenience and see how it works.. :dodgy:

[/quote']

 

Actually, I'd almost prefer to test it on messy installs. If the script works in the midst of a nightmare of conflicts and horror stories, it will work anywhere.

 

I'll have an updated version shortly. The latest one includes the break message and sound effects, including support for custom messages via the ini file.

 

So...does anyone know offhand the keys to determine whether or not an actor is engaged in a lovers with PK act?

Link to comment

hey I was just wondering if its possible that when this is released could it have a BAIN installer? no probs if thats too much to ask :)

love what you've done with it so far... keep up the awesome work.

 

Let's see. Hm' date=' bash cannot read obmm script??

 

@Rad or Ave

Can you script those? I cannot, because I don't have bash. When it runs it currupts my files. So I deleted it long ago.

 

Oh and for some reason when I'm wearing iron armour whenever the message comes up telling me my armour has just been ripped or whatever I get a CTD... doesn't seem to happen with leather as thats the only other armour that I've tried at the moment. could it be the unofficial Oblivion patch? as that adds armour meshes to oblivion?

 

What iron armor? Rad87's or Avebrave's? Perhaps it's because of bad nif file. They may be currupted during PyFFI or sanitizing process. Thanks for pointing it.

 

I think I chose Rad's... and also just discovered that the guards in Bravil are all wearing iron cuirasses instead of their gaurd armour also when loading up a save where my character is wearing steel automatically equips her with an iron cuirass even though it was never in my inventory... its strange though as sometimes after reloading a different save the armour will be back to displaying properly with tears and all (depending on the condition of the armour).

Link to comment

hey I was just wondering if its possible that when this is released could it have a BAIN installer? no probs if thats too much to ask :)

love what you've done with it so far... keep up the awesome work.

 

Let's see. Hm' date=' bash cannot read obmm script??

 

@Rad or Ave

Can you script those? I cannot, because I don't have bash. When it runs it currupts my files. So I deleted it long ago.

 

Oh and for some reason when I'm wearing iron armour whenever the message comes up telling me my armour has just been ripped or whatever I get a CTD... doesn't seem to happen with leather as thats the only other armour that I've tried at the moment. could it be the unofficial Oblivion patch? as that adds armour meshes to oblivion?

 

What iron armor? Rad87's or Avebrave's? Perhaps it's because of bad nif file. They may be currupted during PyFFI or sanitizing process. Thanks for pointing it.

 

I think I chose Rad's... and also just discovered that the guards in Bravil are all wearing iron cuirasses instead of their gaurd armour also when loading up a save where my character is wearing steel automatically equips her with an iron cuirass even though it was never in my inventory... its strange though as sometimes after reloading a different save the armour will be back to displaying properly with tears and all (depending on the condition of the armour).

 

Sounds like something messed up in the ini to me.

 

@gerra6 & movomo I'd assume that lover's ability to interact with bu is simply by damaging armors from the mods that you set it to. Thats would be the sane way to implement this.

Link to comment

By the way I already had a BreakUndies.ini file already as I have this also installed: http://www.loverslab.com/showthread.php?tid=10814. I did add the line to the bottom of the BreakUndies.ini as directed so I didn't think that would be the problem but I can post the ini if you think it'll help :)

 

I'm just doing a wild guess here since I'm just the guy doing meshes right now, but the behavior you describe seems to me like an ini error, especialy because it happens only for certain armors.

Link to comment

By the way I already had a BreakUndies.ini file already as I have this also installed: http://www.loverslab.com/showthread.php?tid=10814. I did add the line to the bottom of the BreakUndies.ini as directed so I didn't think that would be the problem but I can post the ini if you think it'll help :)

 

I'm just doing a wild guess here since I'm just the guy doing meshes right now' date=' but the behavior you describe seems to me like an ini error, especialy because it happens only for certain armors.

[/quote']

 

Ok I edited my previous message to include my Breakundies.ini file, I haven't changed the BreakUndies_Stock.ini at all so hopefully the problem isn't with that.

Link to comment

Nah didn't change anything :(

strange thing though when I load my save just before exiting the imperial sewer the leather armour equipped on her displays properly (greaves are short and ripped at 68 health) but when I load a save outside of the sewers the greaves are full length and don't bounce rip or anything (greaves at 55) but the cuirass does display properly.

Link to comment

Discovered that with rusty iron armour equipped upon breaking no ctd occurs' date=' instead there is nothing you simply have an invisible torso. however when breaking with just iron armour equipped (not rusty) a ctd occurs upon breakage. Is it possibly an error in the BreakUndies_Stock.ini?

[/quote']

 

Maybe, I hadn't have time to test it myself. Other possibility is that there is something wrong with the scripts movo did

Link to comment

Discovered that with rusty iron armour equipped upon breaking no ctd occurs' date=' instead there is nothing you simply have an invisible torso. however when breaking with just iron armour equipped (not rusty) a ctd occurs upon breakage. Is it possibly an error in the BreakUndies_Stock.ini?

[/quote']

 

Maybe, I hadn't have time to test it myself. Other possibility is that there is something wrong with the scripts movo did

 

Looks like it is I who messed up the things. DX It could be either the script problem, or stock.ini problem.

I suspect that CTD you're suffering is because of wrong nif file, though. ini is hardly relevant to the CTD matter from what I experienced.

 

I'll see what I can do.

 

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

edit1

 

It figures that I'm completely retarded or very very lazy.

The model paths in Rusty Iron Armor script are wrong. I'll look over ini and test Iron Armor meshes myself.

 

edit2

 

I found no error on obmm script or ini.

No problem on Bravil guard.. It's strange, very strange. Let's try ingame testing.

 

edit3

 

The cause of CTD is currupted nif. Perhaps my PyFFI or branch flattening caused this. Then maybe other armors have the same issues.

Link to comment

First quick fix for ver.121122

 

 

 

@TheBatDad1989

 

- I coudn't reproduce your odd Bravil guards bug. I've never given them an iron cuirass or similar.. I went to Bravil, saved, exited to desktop, and restarted Oblivion.

PLEASE REPORT ME IF ANYONE ELSE EXPERIENCES THE SAME ISSUE.

- Rad87's iron armors are fine. It didn't caused CTD for me.

- Ave's iron armor indeed was currupted.

I still don't know why it's been currupted, but I managed to fix it. I suspect the criminal scum was PyFFI.

- Now rusty iron armor should have visible torso.

 

Do me a favor and tell me if this fixes your problems.

 

@Avebrave

 

About your iron armor,

Do not use 237 alpha flag. It tends to piss off Oblivion. Or at least it pissed off PyFFI. (default 237 flag conflicts with many things like hair.. environment..or pretty much anything.)

Use 4845 or 4846 flag instead. And you can adjust alpha channel's boundary by changing its threshold value.

Link to comment

ok I'll try again with Rad's iron armour... and the thing with the Bravil gaurds isn't the only instance where iron armour was equipped. It happens when loading a save and it is equipped on my character even though I never had iron armour in my inventory... ??? this must also be happening to the Bravil gaurds :(

anyway I'll check out your fix and see if that helps :)

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use