Jump to content

Recommended Posts

Hi, gerra6...

Is it ok if I include your Break Armor .esp & .ini files in my mod that is released years ago in Nexus?

 

Gerra has been absent for a while. Why do you need to include it, anyway? Last time I checked, Nexus didn't have censorship for this site any longer. You can link to here.

Link to comment

Gerra has been absent for a while. Why do you need to include it, anyway? Last time I checked, Nexus didn't have censorship for this site any longer. You can link to here.

 

Oh, ok then. Then I'll inform about Break Armor mod in the description & give the link to here.

Thanks for your information.

Link to comment
  • 2 weeks later...
  • 6 months later...

Is 1.10f from the first post the last version of this? Or is there one floating in the comments or elsewhere?  Found a bug (little, but annoying), and I can post a fix if it hasn't already.

Bug: in the script "aaBAEqCheck", there's a loop checking each piece of equipment, but it breaks out on the first invalid object.

 

 

if eval !( InventoryObject ) ; This shouldn't be possible, but paranoia is for the best.  No really.
    break ; If the impossible happens...the temporary inventory array is probably garbage, so just exit the loop.  We'll check this NPC next time through the loop.
endif

 

It took a while to figure out why some NPCs weren't being scanned or updated at all. Narrowed it down to that and "menstruation ring". It wouldn't pass validation and the NPC would be skipped entirely. To keep most of the original logic behind this condition, I added a second test to see if the object is even playable.

 

 

 

			
if eval !( InventoryObject ) ; This shouldn't be possible, but paranoia is for the best.  No really.
    if eval !(IsPlayable BaseObject)
        continue			
    else
        break ; If the impossible happens...the temporary inventory array is probably garbage, so just exit the loop.  We'll check this NPC next time through the loop.
    endif		    
endif	

 

The menstruation ring now falls into the unplayable condition and the scan continues. It's probably not the only item this fixes.

Link to comment
  • 2 weeks later...

As far as I am aware, 1.10f is the latest and greatest.

This made me recall some work I did a few moths ago. Back then I was really liking this mod but the sound of my stuff re-equiping every time I change cell irritated me a bit. I looked into the code just to see to see that fixing this woldn't be too easy. With the experience I had gained from doing similar stuff with Oblivion earlier I began to experiment and came to a working solution. It currently is working in most cases, but repairing with a hammer or at smith (don't remember which) causes the mesh to not update properly, and may require restarting the game.

 

Some pros and cons with my approach vs this one:

- Break Armor makes a copy of the item it is replacing ands makes target equip it. To do this it must search and guess for the created item's reference in the target's inventory. My silent version equips a dummy object to the actor for a frame while it updates the target item. References are always known.

- Break Armor supports all slots and combinations (if I'm correct). My silent versions needs to have new item created for each slot or combination. While this is not too big issue and new items are relatively easy to add, this also means no specific weapon support.

- To my version I added a bit simpler way to make items display custom text when breaking in battle. I include an example for Justice123's Kvatch guard model which is one of those I experimented with. However, I must say that novelty quickly ran off.

 

Anyway here it is, take a look if interested. I don't think I will provide any support as I mainly did this for myself. There is a much more featured alternative in the market anyway. One thing worth mentioning is that I had already supported hands+torso+legs+feet slot combinations but had to disable it because having armor change for a frame is enough for you to get disqualified from the arena. Project name is also "Break Armor 2" because I didn't have imagination.

 

Silent Break Armor Functional.7z

Link to comment

This made me recall some work I did a few moths ago. Back then I was really liking this mod but the sound of my stuff re-equiping every time I change cell irritated me a bit. I looked into the code just to see to see that fixing this woldn't be too easy. With the experience I had gained from doing similar stuff with Oblivion earlier I began to experiment and came to a working solution. It currently is working in most cases, but repairing with a hammer or at smith (don't remember which) causes the mesh to not update properly, and may require restarting the game.

 

Some pros and cons with my approach vs this one:

- Break Armor makes a copy of the item it is replacing ands makes target equip it. To do this it must search and guess for the created item's reference in the target's inventory. My silent version equips a dummy object to the actor for a frame while it updates the target item. References are always known.

- Break Armor supports all slots and combinations (if I'm correct). My silent versions needs to have new item created for each slot or combination. While this is not too big issue and new items are relatively easy to add, this also means no specific weapon support.

- To my version I added a bit simpler way to make items display custom text when breaking in battle. I include an example for Justice123's Kvatch guard model which is one of those I experimented with. However, I must say that novelty quickly ran off.

 

Anyway here it is, take a look if interested. I don't think I will provide any support as I mainly did this for myself. There is a much more featured alternative in the market anyway. One thing worth mentioning is that I had already supported hands+torso+legs+feet slot combinations but had to disable it because having armor change for a frame is enough for you to get disqualified from the arena. Project name is also "Break Armor 2" because I didn't have imagination.

 

attachicon.gifSilent Break Armor Functional.7z

That equipment sound bugged me, too.  Enough to the point that the mod would be unplayable.  I thought I messed up when making my MESS version, but went back to the original to find it was indeed there, too.  Turns out it was side effect (bug) of the way purging data was handled when changing cells.  It would effectively do 2 purge checks in a row on the player.  Not having a health check in between would delete items from the tracking array.  That would hit another bug because items were being deleted from the tracking array in a loop going forwards in the array.  That first delete would cause the indices to shift and quit the loop.  Since an item would get deleted from the array, it would get added back into the array the next cycle.  That would force the unequip/equip, which resulted in the sound being played in transitions. I cleaned both the purge checks and the delete loop in the MESS version.  FYI, both were a pain to track down. 

tl;dr - No more equip sound in BreakArmor (MESS)

 

The searching wasn't for the created item, but for the old specific item.  An unequip/equip cycle is needed to trigger the mesh change (which I'm sure you know).  If you had two identical items but slightly different health, equipitem only sees baseobject and not specific items.  The one it equipped would be unreliable, which may not be game-breaker, but still a big seam in the transition.  To get around this it used inventory references to get the right equipped item with its current health.  Since inventory references expire after the frame does, the search had to be repeated the next frame to delete the original.  Why the create/delete instead unequip/equip?  I asked movomo and was told because of the unreliability of inventory references, and this roundabout way worked so it stayed.

Link to comment

That equipment sound bugged me, too.  Enough to the point that the mod would be unplayable.  I thought I messed up when making my MESS version, but went back to the original to find it was indeed there, too.  Turns out it was side effect (bug) of the way purging data was handled when changing cells.  It would effectively do 2 purge checks in a row on the player.  Not having a health check in between would delete items from the tracking array.  That would hit another bug because items were being deleted from the tracking array in a loop going forwards in the array.  That first delete would cause the indices to shift and quit the loop.  Since an item would get deleted from the array, it would get added back into the array the next cycle.  That would force the unequip/equip, which resulted in the sound being played in transitions. I cleaned both the purge checks and the delete loop in the MESS version.  FYI, both were a pain to track down. 

tl;dr - No more equip sound in BreakArmor (MESS)

 

The searching wasn't for the created item, but for the old specific item.  An unequip/equip cycle is needed to trigger the mesh change (which I'm sure you know).  If you had two identical items but slightly different health, equipitem only sees baseobject and not specific items.  The one it equipped would be unreliable, which may not be game-breaker, but still a big seam in the transition.  To get around this it used inventory references to get the right equipped item with its current health.  Since inventory references expire after the frame does, the search had to be repeated the next frame to delete the original.  Why the create/delete instead unequip/equip?  I asked movomo and was told because of the unreliability of inventory references, and this roundabout way worked so it stayed.

This is actually interesting, because in the hindsight I feel that that a noice clue is in place when you are fighting. If your mod really solves the annoying bit with cells I'd very gladly switch over to using it. Also thank you for technical description of what the code actually does. I find Oblivion scripting language relatively hard to read (especially multitype multidimensional arrays that are externally accessed by other scripts). I overviewed it just to find out that the EquipMe-command required by BA's solution doesn't have a silent version, so I wanted to try designing around it. Now it probably is the case that my version doesn't handle multiple same base inventory items very well (didn't really got around to test that), so I'm glad to hear this issue has been adressed.

Link to comment

This is actually interesting, because in the hindsight I feel that that a noice clue is in place when you are fighting. If your mod really solves the annoying bit with cells I'd very gladly switch over to using it. Also thank you for technical description of what the code actually does. I find Oblivion scripting language relatively hard to read (especially multitype multidimensional arrays that are externally accessed by other scripts). I overviewed it just to find out that the EquipMe-command required by BA's solution doesn't have a silent version, so I wanted to try designing around it. Now it probably is the case that my version doesn't handle multiple same base inventory items very well (didn't really got around to test that), so I'm glad to hear this issue has been adressed.

I replied late at night, and did incorrectly remember pretty much everything I wrote. Yes, you're right it does search for the newly created item, but for the reasons I stated.  That whole create/delete mess was just to avoid the issue of stacking.  I know if I made it, I would have just done the the lazy (un)equipsilent way, but would have had a stacking problem.  I just went with it since it was already there and done and most importantly working.

 

I also accidentally implied ALL equip sounds were eliminated, but like you said it will still occur in battle because of the necessary unequp/equip cycle to change the mesh.  It was only on the transitions that the sound was eliminated.  That one was just too frequent and luckily, fixable. I could (mostly) go along with the battle one since the armor is being damaged at that moment and could make a sound when it gets torn/broken.

Nearly all of my time modding BA was more trying to follow the convoluted logic and less actually making changes/additions.  Definitely not a straightforward mod.  However, now after having dug through it, I believe it is the right way to go about what it is trying to do and avoid certain problems.  The author(s) had a lot more patience than I would have.

Link to comment

I replied late at night, and did incorrectly remember pretty much everything I wrote. Yes, you're right it does search for the newly created item, but for the reasons I stated.  That whole create/delete mess was just to avoid the issue of stacking.  I know if I made it, I would have just done the the lazy (un)equipsilent way, but would have had a stacking problem.  I just went with it since it was already there and done and most importantly working.

 

Well nice to hear I was right about that one after all. Yeah it is great that we already have BA with these kind of issues solved. Getting rid of that unnecessary update however was really important in my book.

 

I also accidentally implied ALL equip sounds were eliminated, but like you said it will still occur in battle because of the necessary unequp/equip cycle to change the mesh.  It was only on the transitions that the sound was eliminated.  That one was just too frequent and luckily, fixable. I could (mostly) go along with the battle one since the armor is being damaged at that moment and could make a sound when it gets torn/broken.

Nearly all of my time modding BA was more trying to follow the convoluted logic and less actually making changes/additions.  Definitely not a straightforward mod.  However, now after having dug through it, I believe it is the right way to go about what it is trying to do and avoid certain problems.  The author(s) had a lot more patience than I would have.

 

Don't worry I wasn't fooled. Now that we are talking about this, do you recall if Break Armor cycles through actors when it tries to detect equipment that needs to break? In my approach I used event handlers to detect actors being hit (plus detecting when player enters repair/enchantment menu etc.), which may still be worth implementing here. Cycling scripts have that unfortunate side effect of increasing the chance of stuttering while most of the time achieving nothing. Of course detecting hits isn't a foolproof mechanism on its own (like when a NPC enters the cell), but it can help to drastically reduce the scan frequency to once per few seconds.

Link to comment

Don't worry I wasn't fooled. Now that we are talking about this, do you recall if Break Armor cycles through actors when it tries to detect equipment that needs to break? In my approach I used event handlers to detect actors being hit (plus detecting when player enters repair/enchantment menu etc.), which may still be worth implementing here. Cycling scripts have that unfortunate side effect of increasing the chance of stuttering while most of the time achieving nothing. Of course detecting hits isn't a foolproof mechanism on its own (like when a NPC enters the cell), but it can help to drastically reduce the scan frequency to once per few seconds.

I kept the main cycling of actors.  It didn't seem so bad since it only processes one NPC per frame, and not all on every frame.  I did switch the actor array creation from a "GetNextRef" loop to a GetHighActors, which hopefully is more efficient.  If armor was only damaged by physical hits, I probably would have switched to the OnHit event handler.  However, effects like Damage Armor made me weary.  Since it wouldn't just be limited to spell attacks.  It could be effect of an enchanted item.  A mod could potentially make an "ability" spell with it to act as a curse.  All this would've required me testing it to verify it works in different situations, whereas looping and health tracking is fairly straightforward (and already in-place).  I'm not thrilled about the continuous checking when nothing has changed, but it currently gets the job done reliably.

 

I really wasn't looking to takeover BA and/or rewrite it, I just wanted to make it compatible with my others mods.  It was only during testing that I found bugs and had to make sure it wasn't my doing.  I didn't want to have to use the "it was in the original" excuse, if a bug was reported on my version.

Link to comment

I kept the main cycling of actors.  It didn't seem so bad since it only processes one NPC per frame, and not all on every frame.  I did switch the actor array creation from a "GetNextRef" loop to a GetHighActors, which hopefully is more efficient.  If armor was only damaged by physical hits, I probably would have switched to the OnHit event handler.  However, effects like Damage Armor made me weary.  Since it wouldn't just be limited to spell attacks.  It could be effect of an enchanted item.  A mod could potentially make an "ability" spell with it to act as a curse.  All this would've required me testing it to verify it works in different situations, whereas looping and health tracking is fairly straightforward (and already in-place).  I'm not thrilled about the continuous checking when nothing has changed, but it currently gets the job done reliably.

 

I really wasn't looking to takeover BA and/or rewrite it, I just wanted to make it compatible with my others mods.  It was only during testing that I found bugs and had to make sure it wasn't my doing.  I didn't want to have to use the "it was in the original" excuse, if a bug was reported on my version.

Ok, I see where you are coming from. I actually wasn't aware that there is damage armor effect.

Link to comment
  • 2 months later...

I seem to be having a problem getting this to work.

I have this mod, the vanilla break armour mod, Dynasty Recolour mod and metal glass armour installed.

The latter two are meant to be used with Break Undies, but I read here, to my understanding, that Break Undies isn't required.

My Player Character is wearing the Dynasty armour set and I noticed it never showed any damage, even when the armour had only 1 health point left.

Same with the vanilla armours and the metal glass armour.

 

I then installed BU along with BA and I still see no results.

What may I be doing wrong?

Link to comment

Did you follow the instructions in the OP:

 

 

BreakArmor is fully compatible with all Break Undies style meshes. To ensure backwards compatibility with Break Undies meshes, Break Undies 2.x style ini files can be read and processed by BreakArmor.

However, BreakArmor can also function without Break Undies ini files.

Whenever a new piece of armor is detected, BreakArmor will check the mesh's folder for BreakArmor compatible meshes. It then looks for a very specific pattern in the name _ba#.nif

Assume that the base clothing mesh is called "clothingmeshname.nif"
Rename the break meshes to match the following pattern so that the folder looks like this:

clothingmeshname.nif
clothingmeshname_ba1.nif
clothingmeshname_ba2.nif
...
clothingmeshname_ba#.nif

clothingmeshname.nif is the base unbroken mesh (the one listed in the esp/esm that loads the clothing). clothingmeshname_ba1.nif is the first broken state, clothingmeshname_ba#.nif is the most broken state.

And that is all that is required to ensure compatibility with BreakArmor 1.10

However, if you would rather use BreakUndies ini files, simply append the appropriate RunBatchScript entry to the end of the Break_Armor.ini file. Note: BreakArmor automatically processes any or all of BreakUndies.ini, BreakUndies_Stock.ini, and Break_Armor.ini if present

To add Break Armor, Break Weapon, or Break Clothing capability to an existing armor (stock or from any mod)

1. Create a unique mesh for each break state. Note: There is no hard limit to the number of meshes that Break Armor can utilize for a given piece of armor.
2. Add those meshes to the folder where the original nif is stored. The meshes MUST be named in the correct manner that indicates the order of breakage, as detailed above. (mesh_ba1.nif, mesh_ba2.nif etc)

That's it. The next time the game is loaded, BreakArmor will automatically start swapping meshes based on Armor Health (for Armor) or NPC Health/Fatigue (for Clothing).

 

 

 

If you did, then the problem is either you did not install something correctly, or the break armor mods aren't working.  If the recolor mod doesn't have all the meshes, then it isn't going to break.

Link to comment
  • 3 years later...
On 3/17/2017 at 8:17 PM, gregathit said:

As far as I am aware, 1.10f is the latest and greatest.  If you want to post a fix, I'd be happy to add it to the OP and put a credit in to you for it.

Do you know if this final version works with NudeShy X? The modder posted they added support in 2013 but did not say what version. The damage thresholds(Default 70% and 30%) don't seem to do anything.

 

Is there any way to get the character to use Nudeshy animations when their armor is damaged?

Link to comment
7 hours ago, Art_B said:

Do you know if this final version works with NudeShy X? The modder posted they added support in 2013 but did not say what version. The damage thresholds(Default 70% and 30%) don't seem to do anything.

Don't have a clue, sorry.  You might try poking the Nudeshy X author.  I don't use that mod, so I don't know what they did or didn't accomplish.

8 hours ago, Art_B said:

Is there any way to get the character to use Nudeshy animations when their armor is damaged?

Sure, anything is possible.  However you'd need to write scripts and add animation support.  Nothing like that is built into this mod.  It is a pretty simple mod, armor gets damaged and breaks, that is pretty much it.

Link to comment
14 hours ago, gregathit said:

Don't have a clue, sorry.  You might try poking the Nudeshy X author.  I don't use that mod, so I don't know what they did or didn't accomplish.

Sure, anything is possible.  However you'd need to write scripts and add animation support.  Nothing like that is built into this mod.  It is a pretty simple mod, armor gets damaged and breaks, that is pretty much it.

 

Unfortunately the NudeShy author has been inactive for a long time. I was looking through the scripts to figure out how the mod ID's whether the actor is wearing a BU armor.

 

There are many references(25 times to be exact) that look similar to:

 

if hasVariable "BreakUndies" equip

 

But it looks like the variable isn't actually defined anywhere? Perhaps they forgot this final step? I would be interested in fixing this but I am not sure how to define variables.

 

Is there anyone around here who still scripts for Oblivion that I could ask this?

 

EDIT - After thinking, I'm sure it would be easier to edit the Nudeshy esp instead of adding all this to BU. I'll ask in the Nudeshy X thread.

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