Individual cooldown mod - useshared=false triggers zero CD

Discuss Mass Effect 3 mods and modding tools here. This includes multiplayer mods.
Post Reply
shadohz
Posts: 4
Joined: Tue Jul 25, 2017 9:09 pm

Individual cooldown mod - useshared=false triggers zero CD

Post by shadohz »

Shadowlife left a comment on one my mods on how to remove the Marksman skill from Ashley because it causes her to go into zero-CD glitch mode when UsesSharedPowerCooldown is set to false. However this is only true if you have the Ashley Fix mod installed. When you put MM on other companions you get behavior pattern that may require stepping back to see the problems.

Marksman and Adrenaline Rush behave in the same manner. Here are the cases below:
1. AR and MM operate correctly on Shepard when USPC is set to True.
2. AR and MM operate incorrectly on companions when USPC is set to True.
3. AR and MM operate incorrectly on Shepard when USPC is set to False.
4. AR and MM operate incorrectly on companions when USPC is set to False.

As you see in all cases AR and MM operate incorrectly when used on companions, the exception being if you install the Ashley Fix for Ash. Another property AR and MM share in common is that they both block other powers while they are active. Not sure if relevant but worth mentioning. So this brings up quite a few questions.
1. Why does Shepard correctly use AR and MM when USPC is set to True but not companions? The companions get their cooldown time from "henchmancooldowntime".
2. Why does changing the USPC cause some powers not to trigger the current cooldown time but not others? What do these powers have in common other than either being preferred first by AI to be used and/or blocking other powers from working when active?
3. What exactly did BW break in the patch that broke Marksman and what was MM's behavior prior to that patch (could other companions use it correctly? Was there a zero CD glitch when USPC was set to false)?

I think in a rush to fix Ash some important questions were overlooked or at least not disclosed. I edited DEFAULT_DLC_TESTPATCH.bin with my changes in SWAT to add "henchmancooldown" entries then attached the changes to the Individual Cooldown mod. The game still ignored these coalesced entries. So the only rational conclusion is that the errors lie in the PCC files. So where do I start looking to fix these issues?
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Individual cooldown mod - useshared=false triggers zero

Post by Mgamerz »

Unpack testpatch using unpack dlc (it will do read only) then feed the output through PCC data dumper. You can then browse the patch files.

I have looked at the code for cooldowns before and I know the way some powers cooldowns are timed, using no shared cooldowns will bust them. I know that cooldowns are not set the same across all powers. It may be that marksman and adrenaline rush do not actually set cooldowns for companions. I'd have to look specifically into it.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Individual cooldown mod - useshared=false triggers zero

Post by Mgamerz »

It looks like those powers actually modify the state of the shared cooldowns. It is likely actually removing the effect of the mod. I may be able to patch it out.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Individual cooldown mod - useshared=false triggers zero

Post by Mgamerz »

Looking into Ashley Marksman Fix and how it was done, it seems they renamed the marksman class in her PCC file to marksmanAshley. This has an effect of the patch file not applying to her version of the power. Essentially they rolled back the patch, which works by accident.

I will look into making a true fix by patching the power. However this looks like it is going to take script editing which is incredibly tedious with jump offsets.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Individual cooldown mod - useshared=false triggers zero

Post by Mgamerz »

The patch notes for me3 say that Marksman was patched in 1.04 to automatically reload. However, there is no indication this was actually applied. In fact the only thing I can see that was patched was changing it from setsharedcooldown(1000) to calling console command setfakepermacooldown. I assume this command has no impact on squadmates. I may need to run a more advanced comparison.

Edit: did a file compare. Everything in the patch is literally the same. Their patch notes aren't even right. 5 years later and I'm still pissed at how buggy the patches were.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Individual cooldown mod - useshared=false triggers zero

Post by Mgamerz »

Found the bug. In Patch 1.04 they changed it so that instead of just setting the cooldown to 1000 it would call a sahred function to make sure that it was not in an already forced cooldown that looked infinite. So they swapped out setting the cooldown for making it call this function via a internal console command.

Except they put it in BioPlayerController instead of SFXPawn. So it literally doesn't work on anything except players. There are a few ways to fix this.

1) The right way: Restore the original code to MM and AR (they both ahve the exact same cooldown code).
2) Break the overriding exports by renaming them. I don't know if this will bust the game as this is a a patch file.
3) Remove the patch entries from testpatch. This will effectively remove the patch (and properly), but it won't be compatible with a lot of mods.

I'm going to test 2) then 1).
shadohz
Posts: 4
Joined: Tue Jul 25, 2017 9:09 pm

Re: Individual cooldown mod - useshared=false triggers zero

Post by shadohz »

Yes I noticed the renaming convention before I created this post (Beyond Compare is one of my standard QA tools). I compared Ash's fix to vanilla version. That's when I figured out COau "massaged" a fix or it was just a matter of luck. The behavior pattern was too obvious once you accounted for how all the powers function when assigned to non-standard companions vs shep. You're not the only one upset about the last few rollouts. I got an earful from a friend who wanted me to help playertest the PC version like I did with DA:I. I sat out in protest.

I'm going to play around with this a bit more to find out which powers are actually broken still.
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Individual cooldown mod - useshared=false triggers zero

Post by Mgamerz »

I have dedicated a lot of time to fixing this, but it seems it will either require removing it from the testpatch coalesced (will break my mods) or script edit it back in. I have tried script editing it but it crashes because I don't know how to calculate jump addresses.

For you grenade throwing you have to modify each character file and change the canusepower in sfxgrenade base.
shadohz
Posts: 4
Joined: Tue Jul 25, 2017 9:09 pm

Re: Individual cooldown mod - useshared=false triggers zero

Post by shadohz »

is it safe to assume you've given up on this?
User avatar
Mgamerz
Site Admin
Posts: 571
Joined: Wed Jan 06, 2016 1:13 am

Re: Individual cooldown mod - useshared=false triggers zero

Post by Mgamerz »

Unfortunately yes. The only way to fix this would be to remove the patch entry from bioengine in testpatch. I spent lots of time trying to script edit it and it didn't work, but I learned a lot about how testpatch works. Unfortunately there is no way to patch the patch file to work again.
Post Reply