3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 11577|回复: 26
打印 上一主题 下一主题

[MOD] 士兵随机7技能

[复制链接]

3

主题

644

帖子

1041

积分

游戏狂人

Rank: 6Rank: 6

贡献度
50
金元
8410
积分
1041
精华
0
注册时间
2016-12-28
跳转到指定楼层
主题
发表于 2019-12-8 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       感谢论坛一些高手,其实qweytr_1已经找到方法了,这里整理一下。
      修改代码的红色地方,编译时删除base.ctor()那行。
      目前测试新游戏的人物有随机7技能,还没有继续后续是否有问题。



public CharacterProgression(SpecializationDef specializationDef, LevelProgressionDef levelProgression, BaseStatSheetDef baseStatSheetDef, CharacterGenerationParams generationParams = null)

        {
            
this._abilityTracks = new List<AbilityTrack>();
            
this._abilities = new List<TacticalAbilityDef>();
            
this._baseStats = new List<int>();
            
this._baseStats.Clear();
            
int num = (generationParams != null) ? generationParams.EnduranceBonus : 0;
            
this._baseStats.Add(baseStatSheetDef.Strength + num);
            
int num2 = (generationParams != null) ? generationParams.WillBonus : 0;
            
this._baseStats.Add(baseStatSheetDef.Will + num2);
            
int num3 = (generationParams != null) ? generationParams.SpeedBonus : 0;
            
this._baseStats.Add(baseStatSheetDef.Speed + num3);
            
this.BaseStatSheet = baseStatSheetDef;
            
this.SkillPoints = levelProgression.InitialSkillpoints;
            
this.LevelProgression = new LevelProgression(levelProgression, 0);
            
this.MainSpecDef = specializationDef;
            
AbilityTrack track = new AbilityTrack(specializationDef.AbilityTrack, AbilityTrackSource.PrimaryClass);
            
this.AddNewAbilityTrack(track, true);
            
AbilityTrack track2 = AbilityTrack.CreatePersonalAbilityTrack(new GameTagDef[0], levelProgression.MaxLevel, 7);
            
this.AddNewAbilityTrack(track2, false);
            
this.Init();
        
}

评分

2

查看全部评分

回复

使用道具 举报

0

主题

12

帖子

72

积分

初级玩家

Rank: 2

贡献度
0
金元
720
积分
72
精华
0
注册时间
2016-8-7
舒服的沙发
发表于 2021-2-15 17:28 | 只看该作者
周年版修改方法:
// PhoenixPoint.Common.Entities.Characters.AbilityTrack
// Token: 0x06006F74 RID: 28532 RVA: 0x001D2940 File Offset: 0x001D0B40
public static AbilityTrack CreatePersonalAbilityTrack(int trackLength, int abilitiesCount)
{
        DefRepository defRepository = GameUtl.GameComponent<DefRepository>();
        SkillTagDef basicFilter = GameUtl.GameComponent<SharedData>().SharedGameTags.PersonalProgressionTag;
        List<TacticalAbilityDef> list = (from p in defRepository.GetAllDefs<TacticalAbilityDef>()
        where p.CharacterProgressionData != null && p.CharacterProgressionData.PersonalTrackTags.Contains(basicFilter)
        select p).ToList<TacticalAbilityDef>();
        List<AbilityTrackSlot> list2 = new List<AbilityTrackSlot>();
        for (int i = 0; i < trackLength; i++)
        {
                list2.Add(new AbilityTrackSlot());
        }
        List<AbilityTrackSlot> list3 = new List<AbilityTrackSlot>(list2);
        for (int j = 0; j < abilitiesCount + 4; j++)
        {
                TacticalAbilityDef tacticalAbilityDef = (list.Count > 0) ? list.GetRandomElement(null) : null;
                list.Remove(tacticalAbilityDef);
                AbilityTrackSlot randomElement = list3.GetRandomElement(null);
                list3.Remove(randomElement);
                randomElement.Ability = tacticalAbilityDef;
        }
        return new AbilityTrack(list2.ToArray(), AbilityTrackSource.Personal);
}
修改CreatePersonalAbilityTrack函数中的 j < abilitiesCount + 4,就是本来3技能改为3+4技能
修改CharacterProgression函数 强制调用CreatePersonalAbilityTrack函数 把问号之前的删掉
// PhoenixPoint.Common.Entities.Characters.CharacterProgression
// Token: 0x06006FD8 RID: 28632
public CharacterProgression(CharacterProgressionDescription param)
{
        this._abilityTracks = new List<AbilityTrack>();
        this._abilities = new List<TacticalAbilityDef>();
        this._baseStats = new List<int>();
        this._baseStats.Clear();
        this._baseStats.Add(param.BaseStatSheetDef.Strength);
        this._baseStats.Add(param.BaseStatSheetDef.Will);
        this._baseStats.Add(param.BaseStatSheetDef.Speed);
        this.BaseStatSheet = param.BaseStatSheetDef;
        this.SkillPoints = param.LevelProgressionDef.InitialSkillpoints;
        this.LevelProgression = new LevelProgression(param.LevelProgressionDef, 0);
        this.MainSpecDef = param.SpecializationDef;
        AbilityTrack track = new AbilityTrack(this.MainSpecDef.AbilityTrack, AbilityTrackSource.PrimaryClass);
        this.AddNewAbilityTrack(track, true);
        AbilityTrack track2 = AbilityTrack.CreatePersonalAbilityTrack(param.LevelProgressionDef.MaxLevel, this.BaseStatSheet.PersonalAbilitiesCount);
        this.AddNewAbilityTrack(track2, false);
        this.Init();
}
回复 支持 3 反对 1

使用道具 举报

0

主题

246

帖子

348

积分

高级玩家

Rank: 4

贡献度
0
金元
3478
积分
348
精华
0
注册时间
2013-9-15
硬硬的板凳
发表于 2021-6-27 07:22 | 只看该作者
zgq083516 发表于 2021-2-15 17:28
周年版修改方法:
// PhoenixPoint.Common.Entities.Characters.AbilityTrack
// Token: 0x06006F74 RID: 2 ...

可以了,感谢分享
回复 支持 反对

使用道具 举报

23

主题

533

帖子

594

积分

高级玩家

Rank: 4

贡献度
27
金元
4855
积分
594
精华
0
注册时间
2010-1-13
冰凉的地板
发表于 2022-10-28 12:20 | 只看该作者
lzc230 发表于 2021-6-27 07:22
可以了,感谢分享

可以分享一下修改好的文件吗?谢谢
回复 支持 反对

使用道具 举报

23

主题

533

帖子

594

积分

高级玩家

Rank: 4

贡献度
27
金元
4855
积分
594
精华
0
注册时间
2010-1-13
5#
发表于 2022-10-28 12:21 | 只看该作者
zgq083516 发表于 2021-2-15 17:28
周年版修改方法:
// PhoenixPoint.Common.Entities.Characters.AbilityTrack
// Token: 0x06006F74 RID: 2 ...

可以分享一下修改好的文件吗?谢谢
回复 支持 反对

使用道具 举报

0

主题

138

帖子

213

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
2131
积分
213
精华
0
注册时间
2010-10-9
6#
发表于 2023-12-28 22:27 | 只看该作者
666666666666666666
回复 支持 反对

使用道具 举报

0

主题

74

帖子

86

积分

初级玩家

Rank: 2

贡献度
0
金元
857
积分
86
精华
0
注册时间
2020-8-19
7#
发表于 2024-8-27 12:08 | 只看该作者
1111111111111
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-4-18 16:04 , Processed in 0.099662 second(s), 16 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表