ME3TweaksModManager icon indicating copy to clipboard operation
ME3TweaksModManager copied to clipboard

[Question] Is this due to engine difference of tooling problem?

Open levicki opened this issue 1 year ago • 6 comments

This code below works in LE3 but fails to merge in ME3.

image

public static final function VerifyPlayerTalentPoints(SFXPawn Pawn)
{
	local int TalentPoints;
	local int SpentPoints;
	local SFXPawn_Player Player;
	local SFXPawn_Henchman Henchman;
	local SFXPowerCustomActionBase Power;

	Player = SFXPawn_Player(Pawn);
	Henchman = SFXPawn_Henchman(Pawn);

	if (Player != None)
	{
		LogInternal((GetFuncName() $ " - Player = ") $ Player.GetFullName());

		TalentPoints = GetTalentPointSum(Player.CharacterLevel, FALSE);

		foreach Player.PowerManager.Powers(Power)
		{
			if (Power.DisplayInCharacterRecord)
			{
				SpentPoints += Class'SFXPowerManager'.static.GetRefundAmount(Class'SFXPowerCustomAction', int(Power.Rank));
			}
		}
	}
	else if (Henchman != None)
	{
		LogInternal((GetFuncName() $ " - Henchman = ") $ Henchman.GetPrettyName());

		TalentPoints = GetTalentPointSum(Henchman.CharacterLevel, TRUE);

		foreach Henchman.PowerManager.Powers(Power)
		{
			if (Power.DisplayInCharacterRecord)
			{
				SpentPoints += Class'SFXPowerManager'.static.GetRefundAmount(Class'SFXPowerCustomAction', int(Power.Rank));
			}
		}
	}
	else
	{
		LogInternal(GetFuncName() $ " - invalid pawn");
		return;
	}

	LogInternal((((GetFuncName() $ " - TalentPoints = ") $ TalentPoints) $ ", SpentPoints = ") $ SpentPoints);

	TalentPoints -= SpentPoints;

	LogInternal((GetFuncName() $ " - Pawn.TalentPoints = ") $ Pawn.TalentPoints);

	if (Pawn.TalentPoints < TalentPoints)
	{
		Pawn.TalentPoints = TalentPoints;
	}
}

It's not a big deal, I'd just like to know if that is toolset issue or a game engine difference.

levicki avatar Jan 26 '24 23:01 levicki

LogInternal is private in ME3, but public in LE3. Recent LEX nightlies allow calling private functions outside their class (with a warning), but that hasn't rolled out to ModManager quite yet. LogInternal doesn't work in ME3 anyway, so you can just delete all the calls.

SirCxyrtyx avatar Jan 26 '24 23:01 SirCxyrtyx

@SirCxyrtyx Thanks for clarifying.

I am still having problems with my previously working LE3 DLC mod in ME3 though:

image

Game says mod is corrupted, but it's a DLC mod with only a couple of coalesced tweaks (levelrewards being most important of them) — it doesn't replace or add any other files.

The mergemod patch part of it is supposedly applied successfully, but as the levelrewards isn't changed by coalesced override it doesn't do anything useful.

The only other mods I have installed are Unofficial ME3 Patch (which doesn't alter levelrewards and even if it did has lower mount priority) and MEHEM.

Any ideas how to figure out why the game thinks it's corrupted?

Finally, mod manager keeps reinstalling the logger ASI which I keep removing:

image

levicki avatar Jan 27 '24 00:01 levicki

You will have to manually rebuild the mod to identify why it doesn't work. Starter kit generates a working blank mod.

As for the ASI it will install on any mod install as it is used for troubleshooting and is virtually the only debugging tool for ME3. There is no way to turn that feature off.

LogInternal does nothing in any of the games but I built tools with the LE SDK to make it work for us. OT is unlikely to get any new tooling given it has less than 3% userbase for all 3 games combined.

Mgamerz avatar Jan 27 '24 00:01 Mgamerz

You will have to manually rebuild the mod to identify why it doesn't work.

Can you please clarify what do you mean by manually rebuild?

Do you mean make a new blank mod and redo it from scratch?

As for that ASI, it could at least open the log with FILE_SHARE_READ so it can be read instead of getting access denied on it.

levicki avatar Jan 27 '24 00:01 levicki

We aren't going to be updating anything related to ASIs for OT. OT tooling is in the rear view mirror now.

Manually add files back to a blank working mod until it stops working and then figure out how to make that file properly work.

Mgamerz avatar Jan 27 '24 00:01 Mgamerz

I think I might have found the culprit. I deleted the empty default.sfar (that doesn't exist in LE3 but the mod works there).

EDIT

Yes, that fixed it. Thanks for the help.

levicki avatar Jan 27 '24 00:01 levicki