[自用]Mount & Blade II Bannerlord(骑砍2) dll简易修改代码位置

前言

防止自己重置电脑后重新修改找不到方法名。如果有幸帮助到你,那么祝你长寿!

当前版本:v1.0.1.5325

技能经验获取

using System;
using TaleWorlds.CampaignSystem.CharacterDevelopment;
using TaleWorlds.CampaignSystem.ComponentInterfaces;

namespace TaleWorlds.CampaignSystem.GameComponents
{
	// Token: 0x02000107 RID: 263
	public class DefaultGenericXpModel : GenericXpModel
	{
		// Token: 0x0600150D RID: 5389 RVA: 0x00061662 File Offset: 0x0005F862
		public override float GetXpMultiplier(Hero hero)
		{
			if (hero.IsPlayerCompanion && Hero.MainHero.GetPerkValue(DefaultPerks.Charm.NaturalLeader))
			{
				return 1.2f;
			}
			return 1f;
		}
	}
}

hero.IsPlayerCompanion

Hero.MainHero.GetPerkValue(DefaultPerks.Charm.NaturalLeader)

这俩↑非0返回1.2f(应该英雄非0)

否则返回1f(玩家自己)

f是float

同伴上限

using System;
using TaleWorlds.CampaignSystem.ComponentInterfaces;
using TaleWorlds.Localization;

namespace TaleWorlds.CampaignSystem.GameComponents
{
	// Token: 0x020000F8 RID: 248
	public partial class DefaultClanTierModel : ClanTierModel
	{
		// Token: 0x06001472 RID: 5234 RVA: 0x0005AE63 File Offset: 0x00059063
		private int GetCompanionLimitFromTier(int clanTier)
		{
			return clanTier + 3;
		}
	}
}

clanTier是家族等级

难度影响大地图速度

大地图速度享受难度加成

using System;
using TaleWorlds.CampaignSystem.ComponentInterfaces;

namespace TaleWorlds.CampaignSystem.GameComponents
{
	// Token: 0x02000100 RID: 256
	public partial class DefaultDifficultyModel : DifficultyModel
	{
		// Token: 0x0600149C RID: 5276 RVA: 0x0005C3AC File Offset: 0x0005A5AC
		public override float GetPlayerMapMovementSpeedBonusMultiplier()
		{
			switch (CampaignOptions.PlayerMapMovementSpeed)
			{
			case CampaignOptions.Difficulty.VeryEasy:
				return 0.1f;
			case CampaignOptions.Difficulty.Easy:
				return 0.05f;
			case CampaignOptions.Difficulty.Realistic:
				return 0f;
			default:
				return 0f;
			}
		}
	}
}

Realistic

a.真实的

定居点忠诚度因持有者文化改变(直译)

using System;
using TaleWorlds.CampaignSystem.ComponentInterfaces;
using TaleWorlds.CampaignSystem.Settlements;
using TaleWorlds.Localization;

namespace TaleWorlds.CampaignSystem.GameComponents
{
	// Token: 0x020001F2 RID: 498
	public partial class DefaultSettlementLoyaltyModel : SettlementLoyaltyModel
	{
		// Token: 0x0600198F RID: 6543 RVA: 0x00010C26 File Offset: 0x0000EE26
		private void GetSettlementLoyaltyChangeDueToOwnerCulture(Town town, ref ExplainedNumber explainedNumber)
		{
			if (town.Settlement.OwnerClan.Culture != town.Settlement.Culture)
			{
				explainedNumber.Add(this.SettlementOwnerDifferentCultureLoyaltyEffect,DefaultSettlementLoyaltyModel.CultureText, null);
			}
		}
	}
}

这个Add方法太复杂且太多地方都调用,还是别改了,我看不懂的

注释掉explainedNumber.Add(this.SettlementOwnerDifferentCultureLoyaltyEffect,DefaultSettlementLoyaltyModel.CultureText, null);

效果如下:(公民身份-0.5说明异文化)
在这里插入图片描述

打铁武器修正(ModifyWeaponDesign)

using System;
using System.Collections.Generic;
using TaleWorlds.CampaignSystem.ComponentInterfaces;
using TaleWorlds.Core;

namespace TaleWorlds.CampaignSystem.GameComponents
{
	// Token: 0x02000208 RID: 520
	public partial class DefaultSmithingModel : SmithingModel
	{
		// Token: 0x06001A50 RID: 6736 RVA: 0x0009D0E4 File Offset: 0x0009B2E4
		private Crafting.OverrideData ModifyWeaponDesign(int numPoints)
		{
			Crafting.OverrideData overrideData = new Crafting.OverrideData(0f, 0, 0, 0, 0);
			int num = 0;
			int num2 = 0;
			while (num2 != numPoints && num < 500)
			{
				int num3 = (numPoints > 0) ? 1 : -1;
				if (MBRandom.RandomFloat < 0.1f)
				{
					num3 = -num3;
				}
				float randomFloat = MBRandom.RandomFloat;
				if (randomFloat < 0.2f)
				{
					overrideData.SwingSpeedOverriden += num3;
				}
				else if (randomFloat < 0.4f)
				{
					overrideData.SwingDamageOverriden += num3;
				}
				else if (randomFloat < 0.6f)
				{
					overrideData.ThrustSpeedOverriden += num3;
				}
				else if (randomFloat < 0.8f)
				{
					overrideData.ThrustDamageOverriden += num3;
				}
				else
				{
					overrideData.Handling += num3;
				}
				num++;
				num2 = overrideData.SwingSpeedOverriden + overrideData.SwingDamageOverriden + overrideData.ThrustSpeedOverriden + overrideData.ThrustDamageOverriden + overrideData.Handling;
			}
			return overrideData;
		}
	}
}

ModifyWeaponDesign方法只有在打铁触发优质、精良、极品(属性变动时)才调用

在返回overrideData之前加上数值就行

狂战斧

CanHitMultipleTargets

using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Xml;
using TaleWorlds.Library;

namespace TaleWorlds.Core
{
	// Token: 0x02000039 RID: 57
	public partial class WeaponComponentData
	{
		// Token: 0x1700018D RID: 397
		// (get) Token: 0x06000452 RID: 1106
		public bool CanHitMultipleTargets
		{
			get
			{
				return this.WeaponClass == WeaponClass.TwoHandedAxe || this.WeaponClass == WeaponClass.TwoHandedMace;
			}
		}
	}
}

直接或想要的属性

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值