[WIP?] Possible Upcoming Update to GCDLean204a

Post » Sun Jan 11, 2015 4:28 am

Hi!
So, I may have found a sorta-bug in GCDLean204a. It starts when you need multiple skill levelups in order to actually level-up a skill. Say, for example, I have destruction at 112, it might need two or three levelups in order to go to 113. This is part of the whole 'slowdown' bit.

Here is the code for SCGCDSklDcn

Spoiler

Begin SCGCDSklDcn

Short agilDest
Short endDest
Short intDest
Short perDest
Short spdDest
Short strDest
Short willDest
Short hBackDest
Short hInUseDest
Float InFaDcn
Float VlIUDcn
Float SdPtDcn
Float VampExDcn
Float OldVExDcn
Float CrrDcn
Float BasDcn
Float OlBsDcn
Float changeInBase
Float NeedIncDcn
short PrgsDcn
Float tempA
Float tempB

If ( CrrDcn == ( player->GetDestruction ) )
Return
ElseIf ( VgGCDPauseSklSC > 0 )
Return
ElseIf ( PCVampire != VgGCDVampState )
Return
EndIf
Set CrrDcn To ( player->GetDestruction )
If ( CrrDcn < VgGCDNatDcn )
Return
ElseIf ( player->IsWerewolf == 1 )
Return
EndIf
If ( CrrDcn < 100 )
Set tempA To ( 100 - CrrDcn )
player->ModDestruction tempA
Set tempA To 100
Else
Set tempA To CrrDcn
EndIf
Set tempB To tempA
While ( tempB == tempA )
player->ModDestruction 1
Set tempB To ( tempB + 1 )
Set tempA To ( player->GetDestruction )
EndWhile
Set BasDcn To ( 100 + CrrDcn - tempA )
Set changeInBase To ( BasDcn - OlBsDcn )
If ( BasDcn > 95 )
Set tempA To ( CrrDcn + 5 )
player->SetDestruction tempA
player->ModDestruction 0
player->ModDestruction -5
Set BasDcn To 95
Set OlBsDcn To ( 95 - changeInBase )
Else
Set tempA To ( BasDcn - 100 )
player->ModDestruction tempA
EndIf
If ( VampExDcn != OldVExDcn )
If ( VampExDcn == 0 )
Set VgGCDNatDcn To ( VgGCDNatDcn + 2 )
If ( VgGCDNatDcn > 95 )
Set tempA To ( VgGCDNatDcn + 5 )
player->SetDestruction tempA
player->ModDestruction 0
player->ModDestruction -5
Set BasDcn To 95
Else
Set tempA To VgGCDNatDcn
player->SetDestruction tempA
Set BasDcn To VgGCDNatDcn
EndIf
Else
Set VgGCDNatDcn To ( VgGCDNatDcn + VampExDcn )
EndIf
Set OlBsDcn To BasDcn
Set changeInBase To 0
Set OldVExDcn To VampExDcn
EndIf
If ( changeInBase >= 1 )
While ( changeInBase > 0 )
Set changeInBase To ( changeInBase - 1 )
Set PrgsDcn To ( PrgsDcn + 1 )
If ( PrgsDcn >= NeedIncDcn )
Set PrgsDcn To 0
Set tempB To 0
Set VgGCDNatDcn To ( VgGCDNatDcn + 1 )
Set tempA To ( SdPtDcn + VampExDcn )
If ( VgGCDNatDcn >= tempA )
Set NeedIncDcn To ( NeedIncDcn * VgGCDSlowdown )
EndIf
Set OlBsDcn To ( OlBsDcn + 1 )
Set VgGCDProgAgl To ( VgGCDProgAgl + ( agilDest * InFaDcn ) )
Set VgGCDProgEdc To ( VgGCDProgEdc + ( endDest * InFaDcn ) )
Set VgGCDProgIgc To ( VgGCDProgIgc + ( intDest * InFaDcn ) )
Set VgGCDProgPty To ( VgGCDProgPty + ( perDest * InFaDcn ) )
Set VgGCDProgSpd To ( VgGCDProgSpd + ( spdDest * InFaDcn ) )
Set VgGCDProgStg To ( VgGCDProgStg + ( strDest * InFaDcn ) )
Set VgGCDProgWpr To ( VgGCDProgWpr + ( willDest * InFaDcn ) )
Set VgGCDPointsBack To ( VgGCDPointsBack + hBackDest )
Set VgGCDPointsUsed To ( VgGCDPointsUsed + ( hInUseDest * VlIUDcn ) )
Else
player->ModDestruction -1
Set CrrDcn To ( CrrDcn - 1 )
EndIf
EndWhile
If ( tempB != 0 )
If ( ScriptRunning SCGCDSkillMssg == 0 )
MessageBox ""
MessageBox ""
MessageBox ""
Set SCGCDSkillMssg.SklCode To 10
Set SCGCDSkillMssg.needed To ( NeedIncDcn + 1 )
Set SCGCDSkillMssg.progress To PrgsDcn
StartScript SCGCDSkillMssg
EndIf
Else
Set tempB To 1
EndIf
Set SCGCDAttZIncr.State To 1
EndIf

End



Now, take note of the variable: short PrgsDcn
This variable controls if you need to level up multiple time in order to actually achieve a higher level. Say, for example, if you are at Destruction = 112, you might need to fill the progress bar two or three times to level up. It'll give you some messages, (There also seems to be a message which says "Your skill increased to 113" for each time PrgsDcn gets incremented, when it actually doesn't increase, but I'm still looking into that. I've got no idea where that part comes from).

So, here's the issue. If you've got a rock-stable install, and never quit the game, all's fine. But, say NeedIncDcn is 3, and PrgsDcn is 2. And you decide that's enough for the day. You save, and come back a few days later. PrgsDcn is now at 0 again. A bit of a setback, yeah?

I have no idea why NeedIncDcn is fine between loads. Nevermind, I figured it out. It's a hella wasteful loop on the higher end, but w/e. Iterating through it every single time... I'd have made more globals as opposed to going through that large while loop dozens and dozens of times, but meh, that's just me. And I'm not good enough to consider refactoring this code.


I'm trying to mess around with the scripts, and I think making PrgsDcn a global fixes the issue. (I renamed it SCGCDPrgsDcn in my own test case). The value is now stored between saves, and it looks like it's working again.

Now, here's my question to everyone:
Should I try to release my new version with edits? Am I making a horrific mistake? I am running the code patch, but I'm not running the skill/attribute uncappers.

If I was to release/change this, this would be an additional 27 global variables. It's a pretty small change, all things considered, but it's kind of irritating, isn't it?

Thoughts?

My load order, and personal customization's:

Spoiler

Active Mods
001 Morrowind.esm
002 Tribunal.esm
003 Bloodmoon.esm
004 Texture Fix - Bloodmoon 1.1.esm
005 Morrowind Patch 1.6.5 Beta (BTB Edit).esm
006 Texture Fix 2.0.esm
007 MCA.esm
008 Poorly Placed Object Fix 1.2.esm
009 H.E.L.L.U.V.A._Merchant_Containers.esm
010 Morrowind Advanced.esm
011 abotWaterLife.esm
012 abotWaterLifeNamePatch.esp
013 Infernal SummoningV1.1.esp
014 Creature Pack 1.1.esp
015 adamantiumarmor.esp
016 Siege at Firemoth.esp
017 master_index.esp
018 Teleport_plugin_The Undead Dungeons.esp
019 The Undead Dungeons.esp
020 Qwert's House of 6 Pains.esp
021 Qwert's Dwemer Graveyard.esp
022 Qwert's House of Madness (2).esp
023 Aard_Vetooch_20.esp
024 PSsorticon.esp
025 SirLuthor-Tools.esp
026 Exile.esp
027 Unique Banners and Signs.esp
028 pcc_tr_bm_ingredients_01.esp
029 Better Bodies.esp
030 pcc_undead_vetooch_10.esp
031 pcc_more_undead_vetooch.esp
032 Windows Glow.esp
033 Key Replacer Trib & BM.esp
034 Tombs Expanded.esp
035 JEB_muffin_fix.esp
036 Barabus' fireplaces 2.esp
037 Windows Glow - Tribunal Eng.esp
038 AtmosphericSoundEffects-3.0-Tribunal.esp
039 DXM_masterindex_journalfix.esp
040 Windows Glow - Bloodmoon Eng.esp
041 Windows Glow - Raven Rock Eng.esp
042 Creatures.esp
043 ExcellentMagicSounds.esp
044 Better Clothes Complete (BTB Edit).esp
045 horationpcenhanced12-bm.esp
046 npce_mwse_patch.esp
047 Better Clothes_v1.1.esp
048 WA_Signy_Signposts(!).ESP
049 Better Skulls.ESP
050 pcc_lob_knaarus_option.esp
051 pcc_lob_xindaz_option.esp
052 Psy_VGR_Armour.esp
053 pcc_lob_shephli_66.esp
054 Morrowind Crafting 2-1.esp
055 Morrowind Crafting Equipment.esp
056 MA_snowprincetomb_v3.esp
057 Vurt's Grazelands Trees.esp
058 Decorator+ (Balanced).esp
059 abotWindowsGlow.esp
060 Statue Replacer - Normal.esp
061 Arn_DungeonTunnels.esp
062 bones.esp
063 Shieldfx.esp
064 pcc_thoogera_30.esp
065 pcc_thoogera_lob_07.esp
066 pcc_thoogera_knaarus_07.esp
067 pcc_thoogera_esmer_03.esp
068 sm_creatures_02.esp
069 Golden Gold.esp
070 New Voices.esp
071 Scatter Mod.esp
072 Sleepers, Awake!.esp
073 guarskin_drum_replacer.esp
074 EcoAdjCrime (Tresspass Edit).esp
075 More Crafting.esp
076 EcoAdjMerchantSkills (Disposition Edit).esp
077 True_Lights_And_Darkness_1.0-NoDaylight.esp
078 Clean MCFC_1.0.esp
079 imperial chain fix.esp
080 Bloated Caves.esp
081 BetterClothes_Patch.esp
082 Starfires NPC Additions ver-1.11.esp
083 almalexia armor.esp
084 Psy_UniqueDremora_T.esp
085 Improved Bartering.esp
086 Antares' Big Mod 7.3.esp
087 Map - Deluxe.esp
088 Graphic Herbalism.esp
089 GH MC Patch.esp
090 GCDLean204STD.esp
091 Atronach Expansion X.ESP
092 Hold it - replacer.esp
093 Hold it - SF npc addon.esp
094 H.E.L.L.U.V.A. Handy Holdables.esp
095 Spirit's MGSO Daedric Armor Fixes.esp
096 BTB - Character.esp
097 Golden Gold Patch v1.0.esp
098 Welcome to the Arena! v5.5.esp
099 Book Jackets - Morrowind.esp
100 More Better Clothes.ESP
101 MW_Adv_Required (BTB Edit).esp
102 GCDRestorePotionsFix.esp
103 LeftGloves_Addon_v2.esp
104 Murderous Dreams_Safe.esp
105 Unique Jewelry and Accessories.esp
106 Area Effect Projectiles.esp
107 Book Jackets - Bloodmoon.esp
108 Sorting Urns.esp
109 NewBlood_MwTbBm1.1.esp
110 Scrolls and SoulGems 1.1.esp
111 Neo's Unique Creatures.esp
112 BetterClothesForTB.esp
113 correctUV Ore Replacer 1.0.esp
114 UF_HortRobeF001.esp
115 Vurt's BC Tree Replacer II.esp
116 BTB - Alchemy.esp
117 BTB - Spells.esp
118 New Bodies - Clean.esp
119 Female Armor - Complete.esp
120 OTR_Coast_Variety.esp
121 Better Weapons and Armors.esp
122 STA_guides_replacer.esp
123 Better_Sounds.esp
124 MW Containers Animated.esp
125 mel_teleportPlugin_1_3.esp
126 mel_teleportPlugin_1_3_Patches.esp
127 The Neverhalls.esp
128 sm_ForgottenHalls.esp
129 Book Jackets - Tribunal.esp
130 BTB - Settings (Alternate).esp
131 HELLUVA Balanced BTB.esp
132 HELLUVA Balanced Creatures Addon.esp
133 Arrow.ESP
134 QOTW Season One.ESP
135 QOTW Season Two.ESP
136 QOTW Season Three.ESP
137 Creatures Merged Objects Fix.esp
138 Chris3.esp
139 multipatch.esp


The only other modifications I think I've made, is that I made the green-blue butterflies show up, with their corresponding wings. And some edits to the BTB customizations. And I had to put a leaf or green texture on some sort of creature. I forget which one, it was kind of ent-like? Or maybe a tree? Doesn't really matter. It'd show up on the road East of starter town. I've also modified one of the randomly-generated-dungeon mods (Aard_vetooch), so that it has a sorting urn. And I modified the sorting urn so that it'll svck up nearly every ingredient that I've found so far. Chris3 was made from SmartMerger

I've still got to add myconid fungus to the swamp myconid, and a few other things. It's a nice, slow trudge. :-p

It runs at around 600 global variables, and 135 scripts. My Save file is ~6Mb I crash around once every other hour, and they are not combat-related crashes, which is awesome! :-)

User avatar
Symone Velez
 
Posts: 3434
Joined: Thu Sep 07, 2006 12:39 am

Post » Sun Jan 11, 2015 1:41 pm

This happens in regular GCD as well! Would it be possible to get a fix for it in the latest build?

User avatar
Laura Wilson
 
Posts: 3445
Joined: Thu Oct 05, 2006 3:57 pm


Return to III - Morrowind