gregathit Posted February 1, 2013 Posted February 1, 2013 Out of curiosity you might try the console command PCB and then do a very short fast travel to a close by location to see if that fixes it without having to exit the game.
gerra6 Posted February 1, 2013 Author Posted February 1, 2013 Ahem' date=' a bit of a question.What to do if the armor stays broken after reloading a save?Can it be somehow fixed?Or will it reload after taking damage again?Or I just gotta wait? [/quote'] Â What happens if you unequip the armor and then re-equip it? Â My guess is that BreakArmor got confused and thinks that the applied break state mesh is the fully repaired state. Unequipping the armor should purge it from the player's breakarmor equipment array, re-equipping it should cause breakarmor to re-initialize the armor as if it hadn't seen it before. (Note, this may only work with 1.10.f. Earlier versions were a bit less aggressive with the array purges)
Greer Posted February 2, 2013 Posted February 2, 2013 Well I'll try the beta patch and see what that'll do for now.But before that,equipping-reequipping didnt do much, save-reload didnt do much either, quitting and reloading however works. :EDIT:Beta version works perfect, don't even need to reequip anything if I repaired the armor
movomo Posted February 5, 2013 Posted February 5, 2013 I decided to use OnActorEquip, instead of cycling, as it looks like it will provide the information needed often enough. It will build the NPC queue array rather than cycling from the main quest. (or I could call the check function directly from OnActorEquip. ) The bad thing is I don't know when exactly the purge should be performed. OnSave and OnLoad purge looks enough for me.. Â Anyway I have a question on your script. Â Cycle script calls the aaBAPurgeCheck function ; Next, add the player to the arr_NPC_Queue array ; Set the currentNPC variable to playerRef because using playerRef directly causes stupid to happen let currentNPC := playerRef let NPCKey := GetRawFormIDString currentNPC ar_append arr_NPC_Queue currentNPC if eval (ar_HasKey NPCStateArray NPCKey) call aaBAPurgeCheck NPCKey endif And the NPCKey is the player, and only the player. Is this what it supposed to do?What's the relationship between this and the following 'purge' part? we cannot seem to manipulate the "Count" flag for any NPC other than the PC!
gerra6 Posted February 5, 2013 Author Posted February 5, 2013 First, it's important to look at that particular section in context  "if currentKey == lastKey" is a check to determine whether the script has cycled through the entire NPC Queue array.  If it has, then the script builds a new NPC Queue.  What is this NPC Queue?  Well, the idea is to build an array of all nearby NPC's using a GetNextRef and then cycle through that array one NPC at a time over the course of the next X frames.  Here is that section of the code in its entirety.      if currentKey == lastKey       ; First, Re-initialize arr_NPC_Queue       if arr_NPC_Queue         let arr_NPC_Queue := ar_Null       endif       let arr_NPC_Queue := ar_Construct Array       ; Now construct a new arr_NPC_Queue from all nearby NPCs       ;First, get the initial NPC reference       let currentNPC := GetFirstRef 35 1       while currentNPC ; As long as there is a valid NPC reference, keep iterating through them and adding them to the NPC queue         if eval !( MaleSupport == 0 && currentNPC.IsFemale == 0 ) ; If male support is not enabled, leave men out of the queue.           if eval (IsFormValid currentNPC)             let NPCKey := GetRawFormIDString currentNPC             ar_append arr_NPC_Queue currentNPC             if eval (ar_HasKey NPCStateArray NPCKey)               call aaBAPurgeCheck NPCKey             endif           endif         endif         let currentNPC := GetNextRef       loop       ; Next, add the player to the arr_NPC_Queue array       ; Set the currentNPC variable to playerRef because using playerRef directly causes stupid to happen       let currentNPC := playerRef       let NPCKey := GetRawFormIDString currentNPC       ar_append arr_NPC_Queue currentNPC       if eval (ar_HasKey NPCStateArray NPCKey)         call aaBAPurgeCheck NPCKey       endif       ;Here's that purge I was talking about.       ;Purge any entries in the NPCStateArray that do not have matching entries in this cycle's arr_NPC_Queue array       let tempCounter := ar_size NPCStateArray       if tempCounter > 0         ForEach iter <- NPCStateArray           if eval ( NPCStateArray[iter["key"]]["Count"] ) == 0             ar_Erase NPCStateArray $iter["key"]           else             let NPCStateArray[iter["key"]]["Count"] := 0 ; Setting this to zero means that it will be purged in the next cycle if the NPC is not found           endif         loop       endif       ;Re-Initialize lastKey and currentKey       let lastKey := ar_Last arr_NPC_Queue       let lastKey += 1       let currentKey := 0       ;That's all we're going to do this frame.       set NPCKey to sv_Destruct       return     endif  Count is just a flag (valid values 0 and 1).  It is set to 1 any time the NPC is accessed  (there is a similar flag on their Break Armor items).  If the flag is 0 when the array is rebuilt, they are purged from the item array.  aaBAPurgeCheck is the function that checks the break armor item array and purges any item that was not detected on the last cycle.  Â
movomo Posted February 5, 2013 Posted February 5, 2013 Oh well, Â stupid sorry. Â I overlooked call aaBAPurgeCheck NPCKey in the while loop!! So I thought you're not processing any NPCs other than the player. Â Gah anyway, since I won't cycle through every frame I have to come up with some other timing to perform the purge.
gerra6 Posted February 5, 2013 Author Posted February 5, 2013 (edited) For what you're planning to do, I would recommend looking at how this stuff is implemented in Setbody as well.  Breakarmor has a ton of weird code that I implemented to minimize its system load, weird code that won't necessarily be needed for what you're doing.  That said, I highly recommend using a single gamemode quest script that fires once per frame.  In generic terms, It can be as simple as something like this   if ActionFlag == 1 call doStuff return endif if NothingToSeeHere == 1 return endif call someOtherFunction return so every frame the gamemode function fires.  If the ActionFlag variable is set, the function takes the indicated action and then returns.  If NothingToSeeHere is set, the function immediately returns.  If neither flag is set, someOtherFunction gets called.  Note: whenever you see return in a function, that represents one of the endpoints of the function.  So this mini pseudo function has three endpoints...on any given frame, it will only reach one of those three returns.  If you look closely, both the main setbody function and the main break armor function are just variants of this basic structure.  You may not necessarily want to mimic the BreakArmor and/or Setbody functions so much as mirror this basic structure. Edited February 5, 2013 by gerra6
GECK.O Posted February 14, 2013 Posted February 14, 2013 I want to ask about something...... Â I downloaded ArgentArmor BBB + BU yesterday. It support and need BreakUndies.esm, not the BreakArmor. After do some researching, I want to ask....... Â Basically using BU_disabler.esp, it can use BA and BU together, right? So using ArgentArmor for BU will be fine, right? Â Are there any differences or disadvantages for using BU-armor-esp version (with BA+BU_disabler.esp) over the BA-armor-esp version?
movomo Posted February 14, 2013 Posted February 14, 2013 I want to ask about something......  I downloaded ArgentArmor BBB + BU yesterday. It support and need BreakUndies.esm, not the BreakArmor. After do some researching, I want to ask.......  Basically using BU_disabler.esp, it can use BA and BU together, right? So using ArgentArmor for BU will be fine, right?  Are there any differences or disadvantages for using BU-armor-esp version (with BA+BU_disabler.esp) over the BA-armor-esp version?   Basically, BA is intended to completely replace the old BU system. Since Break Undies 2.0, BU armors don't require their plugins to be mastered to the main esm - instead, you edit the ini file and it will recognize them. BA doesn't even require ini file, but still recognize legacy ini. BU does hammer the performance, while you can hardly notice frame drop when you run BA instead. Anyway, some of very old BU armors(BU 1.1) are parented to Break Undies.esm. I don't remember what Argent requires, but if it does require BreakUndies.esm, you get crash without BreakUndies. So you have to enable BreakUndies.esm, then enable BUdisabler.esp to suppress the old BU system from run, and enable BA of course.  Now if you know how to unmaster a plugin from its master, it's a different story. You detach Argent Armor plugin from BreakUndies.esm, and you can use it without hassle of running both BU and BA. (You can de-master plugins using Tes4Gecko.)
GECK.O Posted February 14, 2013 Posted February 14, 2013 ^ Thank you for the advice. I will try the Tes4Gecko. Â Btw, I notice LoversPK support BU too. In the option menu, I can activate it and choose the *.esp. How about the LoversPK compatibility and support with the BA?
gerra6 Posted February 14, 2013 Author Posted February 14, 2013 ^ Thank you for the advice. I will try the Tes4Gecko.  Btw, I notice LoversPK support BU too. In the option menu, I can activate it and choose the *.esp. How about the LoversPK compatibility and support with the BA? BreakArmor includes a *very* primitive plugin in the optional folder called loversBreakArmor. This replaces the native BreakUndies support with Break Armor support...but, it should be said, it's pretty crude. I'll code something a bit less primitive and crappy once I get the chance.
movomo Posted February 15, 2013 Posted February 15, 2013 I tweaked LBA a bit. simply, it gets NPC state information from aaBAReturnNPCState function, and does its job if the item is found in "BAEquip" category. Â Main quest script If IsModLoaded "BreakArmor.esp" Let func_BAReturnNPCState := GetFormFromMod "BreakArmor.esp" 000818 endif Let bDoOnce := 1 So in xLoversPkrCorrectNudeFlagBU script, it checks if the item can be found in "BAEquip" entry, and only if so it excludes the item slot in nude flag. if eval ((ar_Find tmpr meStateArray["BAEquip"]) > -1) if eval(nudeflag & 2) set nudeflag to nudeflag - 2 endif endif Similarly, in xLoversPkrBUBreak script, it checks if the item is found in "BAEquip" entry, and only if the item can be found in the entry it breaks the item. if eval ((ar_Find tmpr meStateArray["BAEquip"]) > -1) if Call xLoversPkrBUBreakSub me tmpr 0 per Let arList[ ar_Size arList ] := tmpr endif endif You still need to take a look at this yourself if you want this to be less primitive. And I haven't time for testing yet. testing anyone?LoversBreakArmor_test.7z
gerra6 Posted February 15, 2013 Author Posted February 15, 2013 (edited) I like the look of that Movomo. Â I can't test any Oblivion stuff right now myself, I'm buried under the Blender stuff, but I think that's the right track. Â I'll take a good long look when I get the chance. Â If we can get conformation that it works, I'll replace the current primitive loversbreakArmor esp with your modified version. Edited February 15, 2013 by gerra6
movomo Posted February 15, 2013 Posted February 15, 2013 yup. It appears to be working as expected. As it's completely automatic now, Lovers BU-related settings are effectively obsolete. Let's wait for another one who can get it to work other than me. Â btw do you think that BU setting menu should be disabled and invisible? or just let them be? I mean the menu that registers individual BU plugins (I haven't looked into it yet, but it could be dangerous because we are probably dealing with entire setting spell script not only the BU one- imo.)
gerra6 Posted February 15, 2013 Author Posted February 15, 2013 yup. It appears to be working as expected. As it's completely automatic now, Lovers BU-related settings are effectively obsolete. Let's wait for another one who can get it to work other than me. Â btw do you think that BU setting menu should be disabled and invisible? or just let them be? I mean the menu that registers individual BU plugins (I haven't looked into it yet, but it could be dangerous because we are probably dealing with entire setting spell script not only the BU one- imo.) If it can be disabled without modifying a script that other lovers plugins also modify, then yes. If not...only if we're willing to test the hell out of it.
movomo Posted February 16, 2013 Posted February 16, 2013 If it can be disabled without modifying a script that other lovers plugins also modify, then yes. If not...only if we're willing to test the hell out of it.It's impossible. Two scripts are involved in the process and both of them are also used by other stuff. I added a couple of lines that will suppress the script when BAEquip entry is empty. LoversBreakArmor_test2.7z
Guest Posted February 16, 2013 Posted February 16, 2013 Thanks for your quick reply and new prevent bloat patch. I'll try it.  And Here is the answer for your question. My load order.    Oblivion.esm Beautiful People 2ch-Ed.esm RaceMaster.esm x117race.esm Chanpon.esm Oscuro's_Oblivion_Overhaul.esm CLS-Craftybits.esm BathingMod_Base.esm MD_Saddle_Master.esm TamrielTravellers.esm HorseCombatMaster.esm Lovers with PK.esm LoversCreature.esm TamagoClub.esm HiyokoClub.esm MotionPack.esp Short Grass V3.esp Unofficial Oblivion Patch.esp Oblivion Citadel Door Fix.esp UOP Vampire Aging & Face Fix.esp DLCShiveringIsles.esp Unofficial Shivering Isles Patch.esp Oscuro's_Oblivion_Overhaul.esp Knights.esp Knights - Unofficial Patch.esp Oscuro's_Oblivion_Overhaul - Knights of Nine.esp DLCBattlehornCastle.esp DLCBattlehornCastle - Unofficial Patch.esp DLCFrostcrag.esp DLCFrostcrag - Unofficial Patch.esp DLCHorseArmor.esp DLCHorseArmor - Unofficial Patch.esp DLCMehrunesRazor.esp DLCMehrunesRazor - Unofficial Patch.esp DLCOrrery.esp DLCOrrery - Unofficial Patch.esp DLCSpellTomes.esp DLCSpellTomes - Unofficial Patch.esp DLCThievesDen.esp DLCThievesDen - Unofficial Patch.esp DLCThievesDen - Unofficial Patch - SSSB.esp DLCVileLair.esp DLCVileLair - Unofficial Patch.esp AsharasSirensAndTritons.esp Beautiful People 2ch-Ed Ashara's Sirens and Tritons.esp Beautiful People 2ch-Ed CustomRace.esp Beautiful People 2ch-Ed Cute Elves.esp Beautiful People 2ch-Ed Disable BandBlindMask.esp Beautiful People 2ch-Ed ENG Race.esp Beautiful People 2ch-Ed Merged Eye Modules.esp Beautiful People 2ch-Ed Merged Hair Modules.esp Beautiful People 2ch-Ed Merged RoseSims Hair Modules.esp Beautiful People 2ch-Ed Merged SKSRENs Hair Modules.esp Beautiful People 2ch-Ed MS Elves - NoSc.esp Beautiful People 2ch-Ed Nec Mystic High Elf Remake.esp Beautiful People 2ch-Ed Chocolate Elves.esp Beautiful People 2ch-Ed Sheogorath Eye.esp Beautiful People 2ch-Ed Vanilla Race.esp DiabloEF 6 in 1.esp x117 Merged SKSRENs Hair Modules.esp x117race.esp x117Race ENG Race.esp Lop-ears Elf.esp Lop-ears Elf_mini.esp FFRace.esp FFRace_MS.esp FormID Finder4.esp Active_Inventory_Spell_1.2.esp Enhanced Hotkeys.esp SupremeMagicka.esp SM_ShiveringIsles.esp SM_Scrolls.esp SM_SigilStone.esp SM_DLCSpellTome.esp SM_EnchantStaff.esp SM_OOO.esp sr_enhanced_magic_system.esp MD Saddlebags v3.0.esp MD Saddlebags v3.0 Alternative Trader Script.esp CLS-Craftybits.esp CB-DepositsForges.esp CB-BeeEnhancement.esp CB-OOO_BuckGlue.esp CB-Weights_Hard.esp Basic Primary Needs.esp BathingMod_Soap.esp BathingMod_Bathroom_Upgrades.esp BathingMod_Placeable_Bathtubs.esp RealisticFatigue.esp MaleBodyReplacerV5.esp EVE_StockEquipmentReplacer.esp EVE_ShiveringIslesEasterEggs.esp EVE_KnightsoftheNine.esp EVE_KhajiitFix.esp EVE_StockEquipmentReplacer for OOO.esp SD2011.esp Energy - Runes.esp sitdown.esp See You Sleep DLL.esp See You Sleep DLL - Vampire Bedroll Anims.esp See You Sleep DLL - DLCVileLair.esp CaptiveMaiden.esp Ta22's NPCs_NENR.esp TamrielTravellers4OOO.esp ShiveringIsleTravellers.esp TamrielTravellersItemsnpc.esp ShiveringIsleTravellersFriendlyFactions.esp Bashed Patch, 0.esp BreakArmor.esp UnderSewerHouse.esp FuroGeneratorTrap.esp MaternityClothes.esp Vanilla Maternity Clothes.esp SetBody.esp TamagoShop.esp TamagoTopic.esp TamagoConfide.esp LoversTamagoClub.esp LoversEncounter.esp HiyokoGenerator.esp HiyokoGeneratorCreature.esp TamagoSetBody.esp LoversAphrodisia.esp LoversAdultPlayPlusforSSP.esp LoversVoiceSSPplus.esp LoversVoiceGHN_TH.esp LoversVoiceGH_TH.esp LoversVoiceSSPx117.esp LoversVoiceGH++2K_TH.esp LoversRaperS.esp LoversEscapeRapeVPlayer.esp LoversNTRburglar.esp LoversSlaveTrader.esp LoversLoveMucus.esp Tamago_VirginBlood.esp LoversSpermTrap.esp LoversPayBandit.esp LoversProstitute.esp LoversClubCats.esp LoversClubCatsSx.esp LoversRapeman.esp PlayerSlaveEncounters_v0.55.esp DarkBloodline.esp LSTBravilUnderground.esp LoversGGBlackmail.esp LoversMB2.esp Lovers3dorgasmMB2.esp Lovers with PK.esp LoversCreature.esp LoversMotionsNT.esp LoversFSE.esp LoversIdleAnimsPriority.esp LoversAnimObjectsPriority.esp Lovers3dorgasm.esp DeadlyReflex 6 - Combat Moves.esp Deadly Reflex 6 - Timed Block and 250% damage.esp Mounted_Spellcasting_Deadly_Reflex_Compatible.esp Deadly Reflex 6 - HeX NifSE Patch.esp SM_DeadlyReflex.esp    Is it necessary to put Lovers plugins after bashed patch and where should I put LoversBreakArmor?
gerra6 Posted February 16, 2013 Author Posted February 16, 2013 In general, Break Armor is fairly load order agnostic, so you can put it just about anywhere. Â LoversBreakArmor should *probably* be grouped with most of your lovers plugins (the ones above the bashed patch), but near the bottom of that pack. It overwrites a number of break undies related scripts in the main lovers with pk files and probably needs to be below any other mods that modify them. Â Note, Movomo's new LoversBreakArmor test version is probably a better bet than the one in the current Break Armor package. The version of LoversBreakArmor that I wrote for the package is very very crude.
briancs159 Posted February 18, 2013 Posted February 18, 2013 I have a question about an issue I seem to have every now and then. When I have damaged armor and I save, sometimes my armor repairs itself. I've had my armor duplicate itself as well. It's a normal save and not a quick save. I no longer use quick saves. It doen't happen very often but often enough to be annoying. Is this just me or a bug?
gerra6 Posted February 18, 2013 Author Posted February 18, 2013 It's probably a bug...but it's tough to say offhand what might be causing it. Â Have you had this happen with any armor, or only certain armors?
briancs159 Posted February 18, 2013 Posted February 18, 2013 I've only been using glass armor so I have not tried it with different armors. I'll try it with something else and see if it's different. Â After a battle where my armor was damaged to about 70-80 I save my game. When break armor refreshes my armor after the save suddenly my armor is up to 100 or close to it. Sometimes it repairs it and duplicates it. Rarely it seems to equip a duplicate armor and my damaged armor is simply unequipped. I can load that save and open my menu quickly and see see my lowered armor health, exit the menu, see my armor blink and re-open my menu and see my armor health is higher. Â My saves tend to take a few seconds to complete though but I'm not sure why that would effect things.
gerra6 Posted February 18, 2013 Author Posted February 18, 2013 Hmm. Â Are you using the 1.10f version of Break Armor?
briancs159 Posted February 18, 2013 Posted February 18, 2013 Yeah but I've noticed that it seems to only happen when I have several copies of the armor that I'm currently wearing. Â It has also dawned on me that it could also be a conflict or something else entirely. I'm also using an experimental version of tamagosetbody movomo is currently working on that switches out the meshes of the armor that I'm wearing with a pregnant model. I've let movomo know through a PM in case it's not break armor and tamagosetbody instead.
movomo Posted February 18, 2013 Posted February 18, 2013 I saw your pm. Yeah, it could be TSB problem. I've added some weird and crude code to update the look.. It's likely to be my fault, but just to make sure see if you can replicate the bug without TSB. Well, probably it's because TSB is just unequip and re-equip the base object without getting the exact invetory reference. My laziness.
adradox Posted February 18, 2013 Posted February 18, 2013 I installed mod with recomended Vanila Armors, it contains esp that requies original BUF, I changed this esp's master file to Breaking Armor but got no visual effect on armor even after zero durability (i tested this on rusty iron armor that you can get from beggining.)
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now