k26451864 发表于 2022-6-11 18:27

发动机载重量和人物初始血量上限等修改方法

本帖最后由 k26451864 于 2022-6-13 22:40 编辑

修改方法可移步这里学习→传送门

// Mm24f.Item.ItemVehicleEngineEntity
public float LoadCapability

{
    get
    {
      if (!this._dirtyLoadCapability)
      {
            return this._cacheLoadCapability;
      }
      float num = 1f + (float)this._modAlloyS * 0.01f + (float)this._modAlloyM * 0.02f + (float)this._modAlloyL * 0.03f;
      float num2 = (100f + Const.Get(string.Format("VW_RARITY_{0}_ENGINE_COEFFICIENT", this._rarity + 1))) / 100f;
      float num3 = this.MasterData.LoadCapability * num * num2;// num2后面“* 10f”就是10倍,改这里目前测试很稳定
      this._dirtyLoadCapability = false;
      this._cacheLoadCapability = num3;
      return num3; // 这里改完不稳定,会还原
    }
}

// Mm24f.Character.HumanEntity
// Token: 0x170003C5 RID: 965
// (get) Token: 0x06001EFD RID: 7933
public int HpMax
{
    get
    {
      int num = 0;
      SkillEntity learnedSkill = this.GetLearnedSkill("HP_PLUS");
      if (learnedSkill != null)
      {
            num = Mathf.CeilToInt((float)this.BaseHpMax * (float)learnedSkill.GetParameter() / 100f);
      }
      return this.BaseHpMax + num;// num后面“+ 10000”就是初始人物多加1W生命上限

    }
}

// Mm24f.Master.MmShop.ShopItem
// Token: 0x17000439 RID: 1081
// (get) Token: 0x06001237 RID: 4663 RVA: 0x0000B77B File Offset: 0x0000997B
public int Rarity
{
    get
    {
      return this._rarity;// _rarity后面“+ 4”就是商店售卖装备5星

    }
}


// Mm24f.Item.ItemVehicleWeaponEntity
// Token: 0x060022A4 RID: 8868
public void UseBullet()
{
    if (this.IsBulletInfinity)
    {
      return;
    }
    if (this._bulletCount <= 0)
    {
      throw new InvalidProgramException("Cannot use bullet. _bulletCount is 0.");
    }
    this._bulletCount--;// this._bulletCount--改成this._bulletCount = this._bulletCount就是弹药不减
    if (Singleton<GameManager>.Instance.GetIntegerFlag("SF_TUTORIAL_EVENT_0070_0010") == 0 && Singleton<GameManager>.Instance.GetIntegerFlag(Const.IRONBASE_RELATION) > 0 && this._bulletCount <= Mathf.FloorToInt((float)this.MasterData.Magazine / 3f))
    {
      Singleton<GameManager>.Instance.SetFlag("SF_TUTORIAL_EVENT_0070_0010", 1);
    }
}


// Mm24f.Item.WeaponRecipe
// Token: 0x060022F4 RID: 8948
public static ItemEntityBase CreateExecute(string recipe_id, int num = 1, int rarity = -1, ItemVehicleBase materialEntity = null)
{
    if (WeaponRecipe.IsCreateableByMaterial(recipe_id) < num)
    {
      return null;
    }
    MmWeaponRecipe.Param param = Singleton<MasterManager>.Instance.WeaponRecipe.Find(recipe_id);
    if (param.IronScrap > 0f)
    {
      Singleton<GameManager>.Instance.SubScrapInventory("HOID_IRON_SCRAP", param.IronScrap * (float)num);// (float)num后面加一个“ * 0 ”就是废铁不减
    }
    if (param.HighTechScrap > 0f)
    {
      Singleton<GameManager>.Instance.SubScrapInventory("HOID_HIGHTECH_SCRAP", param.HighTechScrap * (float)num);// (float)num后面加一个“ * 0 ”就是高科技废铁不减
    }
    if (param.Money > 0)
    {
      int gold = param.Money * Mathf.FloorToInt((float)(num * 100)) / 100;// num后面加一个“ * 0 ”就是钱不减
      Singleton<GameManager>.Instance.PayGold(gold);
    }
    if (materialEntity == null && param.MaterialA != "")
    {
      foreach (ItemEntityBase item in ((IEnumerable<ItemEntityBase>)WeaponRecipe.GetItemEntities(param.MaterialA, param.NumA * num)))// num后面加一个“ * 0 ”就是材料A不减
      {
            Singleton<GameManager>.Instance.RemoveItemFromInventory(item);
      }
    }
    if (param.MaterialB != "")
    {
      foreach (ItemEntityBase item2 in ((IEnumerable<ItemEntityBase>)WeaponRecipe.GetItemEntities(param.MaterialB, param.NumB * num)))num后面加一个“ * 0 ”就是材料B不减
      {
            Singleton<GameManager>.Instance.RemoveItemFromInventory(item2);
      }
    }
    ItemEntityBase itemEntityBase = null;
    if (param.WeaponId != "")
    {
      if (Singleton<MasterManager>.Instance.ItemVehicleWeapons.Dict.ContainsKey(param.WeaponId))
      {
            if (rarity == -1)
            {
                itemEntityBase = ItemVehicleWeaponEntity.Create(param.WeaponId, 0, 4);// 0,4改成4,4就是武器制造必定5星
            }
            else
            {
                itemEntityBase = ItemVehicleWeaponEntity.Create(param.WeaponId, rarity, rarity);
            }
      }
      else
      {
            if (!Singleton<MasterManager>.Instance.ItemVehicleEngines.Dict.ContainsKey(param.WeaponId))
            {
                throw new ArgumentException(param.WeaponId);
            }
            if (rarity == -1)
            {
                itemEntityBase = ItemVehicleEngineEntity.Create(param.WeaponId, 0, 4);// 0,4改成4,4就是引擎制造必定5星
            }
            else
            {
                itemEntityBase = ItemVehicleEngineEntity.Create(param.WeaponId, rarity, rarity);
            }
      }
      if (itemEntityBase != null)
      {
            for (int i = 0; i < num; i++)
            {
                Singleton<GameManager>.Instance.AddItemIntoInventory(itemEntityBase);
            }
      }
    }
    return itemEntityBase;
}
以上制造相关的修改编译后格式会有变化,属正常现象,制造时材料不减但必须得有相关材料才能开启配方并且可以制造

// Mm24f.Character.SkillEntity
// Token: 0x06002C9A RID: 11418 RVA: 0x0001B3E9 File Offset: 0x000195E9
public int IncreaseUsedCount()
{
    if (!this.IsInfinity())
    {
      if (this._used >= this.MasterData.Counts[this._step])
      {
            throw new Exception("cannot increment count of used. skill '{0}' is out.");
      }
      this._used++;// ++改成" = 0 "就是技能使用次数不减
    }
    return this.GetRemainningCount();
}


// Mm24f.Character.HumanEntity
// Token: 0x06002C0B RID: 11275 RVA: 0x000C0380 File Offset: 0x000BE580
public void DealSkillPoint(string skillId, bool nephtechFlag = false, bool forceDeal = false)
{
        {
            this._skillPoint -= num2;// 改成“this._skillPoint = this._skillPoint;”技能点不减,篇幅不够这里简略了,这是倒数第三行
            this._skillPointUsed += num2;
      }
    }
    this.UpdateTrophiesRelatedSkill(nephtechFlag && !forceDeal);
}

wolfer0722 发表于 2022-6-11 18:28

虽然看不懂,但是顶一个:lol

johnor 发表于 2022-6-11 18:33

这是直接改游戏文件了吧

k26451864 发表于 2022-6-11 19:22

johnor 发表于 2022-6-11 18:33
这是直接改游戏文件了吧

对,用dnSpy直接修改 X:\Metal Max Xeno Reborn\METAL MAX Xeno Reborn_Data\Managed\Assembly-CSharp.dll

johnor 发表于 2022-6-11 19:49

k26451864 发表于 2022-6-11 19:22
对,用dnSpy直接修改 X:\Metal Max Xeno Reborn\METAL MAX Xeno Reborn_Data\Managed\Assembly-CSharp.dl ...

主要是不知道那软件怎么操作,好像要按一定格式去编写,不然各种出错

4400魂滅 发表于 2022-6-11 21:55

有没有弹药容量的修改啊想直接改无限弹药

k26451864 发表于 2022-6-12 12:47

4400魂滅 发表于 2022-6-11 21:55
有没有弹药容量的修改啊想直接改无限弹药

有弹药不减了,你可以试试

johnor 发表于 2022-6-12 16:23

楼主找到不少啊,我试试看效果{:3_140:}

4400魂滅 发表于 2022-6-12 16:29

k26451864 发表于 2022-6-12 12:47
有弹药不减了,你可以试试

感谢大佬~~~~~

whosyoudady 发表于 2022-6-12 16:36

能不能看下制作材料相关,刷材料太麻烦了,谢谢LZ

k26451864 发表于 2022-6-12 20:31

whosyoudady 发表于 2022-6-12 16:36
能不能看下制作材料相关,刷材料太麻烦了,谢谢LZ

我也发现材料不好刷了,但是材料这方面真找不到,我连具体的配方列表都找不到
好像后期有诱敌技能后可以无限刷BOSS材料


whosyoudady 发表于 2022-6-12 21:17

k26451864 发表于 2022-6-12 20:31
我也发现材料不好刷了,但是材料这方面真找不到,我连具体的配方列表都找不到
好像后期有诱敌技能后可以 ...

是的,CE可以改数量,但废铁和高科技废铁不知道怎么搜索

k26451864 发表于 2022-6-12 21:25

whosyoudady 发表于 2022-6-12 21:17
是的,CE可以改数量,但废铁和高科技废铁不知道怎么搜索

废铁和高科技废铁得把“吨”换算成“千克”,也就是说1t得搜索1千
还有,材料不减我找到了


whosyoudady 发表于 2022-6-12 21:27

k26451864 发表于 2022-6-12 21:25
废铁和高科技废铁得把“吨”换算成“千克”,也就是说1t得搜索1千
还有,材料不减我找到了



那太好了,就等这个了

k26451864 发表于 2022-6-12 21:34

whosyoudady 发表于 2022-6-12 21:27
那太好了,就等这个了

材料可以不减但是至少得有需要的数量才能制造,没有关键材料还是会制造不了

我不是怪叔叔 发表于 2022-6-13 00:39

真的太牛了~刚下午还想看看有没有制造五星呢就有了 太感谢了

joeson0204 发表于 2022-6-13 07:17

谢谢分享

xalgo 发表于 2022-6-13 08:32

純支持
照著傳送門內教學試了一下
每次編輯完都會跳一堆錯誤代碼不給編譯儲存
我果然沒有編譯程式的天分{:3_155:}
還是乖乖玩CE好了

whosyoudady 发表于 2022-6-13 16:10

感谢LZ,除了弹药和技能不减,其它都修改好了,弹药和技能改了就没意思了

whosyoudady 发表于 2022-6-13 20:23

掉率LZ有研究吗,看到一个人发了

k26451864 发表于 2022-6-13 22:27

whosyoudady 发表于 2022-6-13 20:23
掉率LZ有研究吗,看到一个人发了

我觉得掉率用处不太大,我这材料都不减了,剩下的东西刷一刷也是游戏的一点乐趣,这游戏本来的玩法就是刷子游戏

johnor 发表于 2022-6-15 15:31

楼主有没有提高掉落物品质的方法?

l363474225 发表于 2022-8-17 01:26

whosyoudady 发表于 2022-6-12 21:17
是的,CE可以改数量,但废铁和高科技废铁不知道怎么搜索

CE修改超改金属 数量变了 但是进去改造的时候还是原数量啊 怎么弄

无敌呆萌帅 发表于 2023-6-1 13:24

怎么修改发动机载重量

wskyydx 发表于 2023-6-19 21:12

问下掉落战车武器和引擎5星怎么改,改哪里?
页: [1]
查看完整版本: 发动机载重量和人物初始血量上限等修改方法