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

注册 登录

QQ登录

只需一步,快速开始

查看: 10177|回复: 35
打印 上一主题 下一主题

[MOD] 远古遗迹固定7技能修改,改造槽2变3,加点只消耗1点

[复制链接]

11

主题

145

帖子

242

积分

中级玩家

Rank: 3Rank: 3

贡献度
3
金元
2303
积分
242
精华
0
注册时间
2015-1-11
跳转到指定楼层
主题
发表于 2020-9-13 00:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cai480 于 2020-10-28 14:18 编辑

首先感谢qweytr_1ltcszk时间若倒退、克拉克001、等几位大神的先期研究dnSpy这个软件一样是小白,主要是复制粘贴克拉克001修改好的。

一、前期准备工作
1、dnSpy软件,我没准备链接,用别的大神准备的
修改工具dnSpy可以参考https://bbs.3dmgame.com/thread-5977651-1-1.html
2、修改的文件PhoenixPoint\PhoenixPointWin64_Data\Managed中的Assembly-CSharp.dll
3、找到要修改的地方,右键,编辑方法,修改完点击编译,然后文件--全部保存


一、固定七技能修改方法
CharacterProgression,将以下的
----------------------------原件内容------------------------------------------------
            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, baseStatSheetDef.PersonalAbilitiesCount);
            
this.AddNewAbilityTrack(track2, false);
            
this.Init();

----------------------------替换为------------------------------------------------
            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);
            
IEnumerable<GameTagDef> abilityFilter = new GameTagDef[0];
            
int maxLevel = levelProgression.MaxLevel;
            
AbilityTrack track2 = AbilityTrack.CreatePersonalAbilityTrack(abilityFilter, maxLevel, maxLevel);
            
this.AddNewAbilityTrack(track2, false);
            
List<AbilityTrackSlot> list = new List<AbilityTrackSlot>();
            
DefRepository defRepository = GameUtl.GameComponent<DefRepository>();
            
List<string> learns = new List<string>
            
{
               
"ExpertPacker_AbilityDef",
               
"ExpertRunner_AbilityDef"
            
};
            
(from itDef in defRepository.GetAllDefs<TacticalAbilityDef>()
            
where learns.Contains(itDef.name)
            
select itDef).ToList<TacticalAbilityDef>().ForEach(delegate(TacticalAbilityDef itDef)
            
{
               
this.AddAbility(itDef);
            
});
            
AbilityTrackSlot abilityTrackSlot = new AbilityTrackSlot();
            
TacticalAbilityDef ability = defRepository.GetAllDefs<TacticalAbilityDef>().FirstOrDefault((TacticalAbilityDef itDef) => itDef.name.StartsWith("ExpertLightWeapons_AbilityDef", StringComparison.OrdinalIgnoreCase));
            
abilityTrackSlot.Ability = ability;
            
list.Add(abilityTrackSlot);
            
abilityTrackSlot = new AbilityTrackSlot();
            
ability = defRepository.GetAllDefs<TacticalAbilityDef>().FirstOrDefault((TacticalAbilityDef itDef) => itDef.name.StartsWith("GoodShot_AbilityDef", StringComparison.OrdinalIgnoreCase));
            
abilityTrackSlot.Ability = ability;
            
list.Add(abilityTrackSlot);
            
abilityTrackSlot = new AbilityTrackSlot();
            
ability = defRepository.GetAllDefs<TacticalAbilityDef>().FirstOrDefault((TacticalAbilityDef itDef) => itDef.name.StartsWith("Cautious_AbilityDef", StringComparison.OrdinalIgnoreCase));
            
abilityTrackSlot.Ability = ability;
            
list.Add(abilityTrackSlot);
            
abilityTrackSlot = new AbilityTrackSlot();
            
ability = defRepository.GetAllDefs<TacticalAbilityDef>().FirstOrDefault((TacticalAbilityDef itDef) => itDef.name.StartsWith("ExpertShooter_AbilityDef", StringComparison.OrdinalIgnoreCase));
            
abilityTrackSlot.Ability = ability;
            
list.Add(abilityTrackSlot);
            
abilityTrackSlot = new AbilityTrackSlot();
            
ability = defRepository.GetAllDefs<TacticalAbilityDef>().FirstOrDefault((TacticalAbilityDef itDef) => itDef.name.StartsWith("AssaultRiflesTalent_AbilityDef", StringComparison.OrdinalIgnoreCase));
            
abilityTrackSlot.Ability = ability;
            
list.Add(abilityTrackSlot);
            
abilityTrackSlot = new AbilityTrackSlot();
            
ability = defRepository.GetAllDefs<TacticalAbilityDef>().FirstOrDefault((TacticalAbilityDef itDef) => itDef.name.StartsWith("Gunslinger_AbilityDe", StringComparison.OrdinalIgnoreCase));
            
abilityTrackSlot.Ability = ability;
            
list.Add(abilityTrackSlot);
            
abilityTrackSlot = new AbilityTrackSlot();
            
ability = defRepository.GetAllDefs<TacticalAbilityDef>().FirstOrDefault((TacticalAbilityDef itDef) => itDef.name.StartsWith("DeadlyDuo_ShootAbilityDef", StringComparison.OrdinalIgnoreCase));
            
abilityTrackSlot.Ability = ability;
            
list.Add(abilityTrackSlot);
            
this.AddNewAbilityTrack(new AbilityTrack(list.ToArray(), AbilityTrackSource.Personal), false);
            
this.Init();
----------------------------其中“”引号中的灰色便是技能------------------------------------------------
前面两个技能                "ExpertPacker_AbilityDef", "ExpertRunner_AbilityDef"是公共技能池,不需要学的,战斗自动出现,
后面七个是士兵技能栏的技能。

修改技能建议如下:

公共常驻被动(不需要点):
注意:公共技能可以放主动技能,在战斗的时候自动携带!不光你的士兵带有,敌对的人类士兵一样带有,
仅有海鲜不携带公共技能,因此不建议把强力技能放在公共技能栏。
ExpertPacker_AbilityDef;背包+25%
ExpertRunner_AbilityDef,专业跑者,速度+2


突击被动加载的技能
1ExpertLightWeapons_AbilityDef;轻武器专家,步枪手枪伤害+20%
2GoodShot_AbilityDef:突击步枪伤害,伤害/准度+20(对比原先的已加强)
3Cautious_AbilityDef;好奇者,+20%准确-10%伤害(发现伤害够了,缺命中)
4ExpertShooter_AbilityDef:射击准度+20
5AssaultRiflesTalent_AbilityDef;突击步枪精通+10%准确
6Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次
7DeadlyDuo_ShootAbilityDef;致命连击,主动,进行2次连击准度翻倍,3AP


重装加载的技能(建议选突击兵做副职业,然后穿狙击装备)
1ExpertHeavyWeapons_AbilityDef;重武器专家,重武器伤害+20%
2ExpertShooter_AbilityDef:射击准度+20
3HeavyWeaponsTalent_AbilityDef;重武器精通+10%准确
4Strongman_AbilityDef:被动·大力士重武器伤害+30%,感知-10
5AdrenalineRush_AbilityDef,肾上腺素冲击,狂战大招,主动0ap/5意志,所有动作只消耗1ap,包括攻击,但不能使用耗意志技能
(可配合突击大招使用,先开突击大招,再开肾上腺素)
6Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次
7DeadlyDuo_ShootAbilityDef;致命连击,主动,进行2次连击准度翻倍,3AP

狙击手加载的技能
1Focused_AbilityDef:狙击手,狙击步枪伤害+25%,意志-4
2SniperTalent_AbilityDef;狙击准度+10%
3ExpertLightWeapons_AbilityDef;轻武器专家,步枪手枪伤害+20%(突然发现,狙击步枪也算步枪,何必要减命中的技能?)
4ExpertShooter_AbilityDef:射击准度+20
5AdrenalineRush_AbilityDef,肾上腺素冲击(1AP消耗,所有行动1AP,下回合昏迷)
6Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次
7DeadlyDuo_ShootAbilityDef;致命连击,主动,进行2次连击准度翻倍,3AP

新增狂战士被动
加载的技能(近战版,但是近战除了要靠近,还要2AP打人)
1CloseQuartersSpecialist_AbilityDef:霰弹枪和近战武器精通伤害+20%
2Brawler_AbilityDef;好斗者,近战和猛击+50%伤害
3MeleeWeaponTalent_AbilityDef;近战精通伤害+10%
4ExpertMelee_AbilityDef;近战专家+25%伤害
5Reckless_AbilityDef:伤害+20%准度-20%
6MeleeReturnFire_WithShootAbility_AbilityDef:近战反击
7Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次

加载的技能(用重武器,建议选突击兵做副职业,然后穿狙击装备)
1ExpertHeavyWeapons_AbilityDef;重武器专家,重武器伤害+20%
2ExpertShooter_AbilityDef:射击准度+20
3HeavyWeaponsTalent_AbilityDef;重武器精通+10%准确
4Strongman_AbilityDef:被动·大力士重武器伤害+30%,感知-10
5QuickAim_AbilityDef;快速瞄准主动0/3,下次精通武器射击-1ap
6Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次
7DeadlyDuo_ShootAbilityDef;致命连击,主动,进行2次连击准度翻倍,3AP

牧师、工程兵
建议工程兵转牧师或者牧师转工程兵,技能可以带两个增加治疗量的技能
Helpful_AbilityDef;医疗兵,治疗加成50%,意志+2
ExpertHealer_AbilityDef;医疗专家,治疗+50%
自卫武器的
SelfDefenseSpecialist_AbilityDef;自卫专家,防卫武器伤害+20,聆听范围+10
PDWTalent_AbilityDef:单兵自卫武器精通,准度+10%

其他技能详见二楼,复制这位大佬的:技能名可以参考https://bbs.3dmgame.com/thread-5978422-1-1.html


说明:1.公共技能,敌对人类士兵也享受,建议不要放强力技能。
2.建议备份,写多个文件,每招一类士兵,放入一个文件,再招。
3.一个文件写入不同职业的被动,在这个帖子https://bbs.3dmgame.com/thread-6005077-1-1.html
但是已经失效了,如果各位大佬有方法请告诉我
4.近战狂战很强力,人体改造有个近战模块:近战1AP,一锤600,很爽


二、加点只消耗1点技能点(显示依然是要很多,实际只要1点)
减点则能得很多点技能点,可以前期刷点来点满
ChangeCharacterStat
                    int baseStatCost = this._character.Progression.GetBaseStatCost(baseStat, currentStatValue + 1);
[size=29.3333px]改为              int baseStatCost = 1;  




三、打开控制台
打开控制台参考https://bbs.3dmgame.com/thread-5976935-1-1.html


四、身体改造二变三(强迫症福音)
搜索 InitCharacterInfo 共找到2处
bool flag = this._currentCharacterAugmentsAmount < 3;(两处都,2改3)
----------------------------------------------------------------------------------------------------------
text = text.Replace("{1}", 3.ToString()); (两处都,2改3)
----------------------------------------------------------------------------------------------------------
this.MutationsAvailableValue.GetComponent<UIColorController>().SetWarningActive(3 <= this._currentCharacterAugmentsAmount, false);
(仅出现在第一处。2改3)
----------------------------------------------------------------------------------------------------------
搜索MAX_AUGMENTATIONS共找到2处
2改3,点击紫色英文,编辑字段,将值2改成3



五、抢劫+偷窃,也加好感度(来自ryu238大佬原创,我只搬运,该大佬贴吧ID是影牙将军
中部搜索栏的地方输入MissionRewardDescription
通常第一个查询结果就是了,双击。
大约第26行,结尾处添加+25
rewardDiplomacyChange.Value += value + 25;
大约第43行,同样改法。
rewardDiplomacyChange.Value = value + 25;


六、三派不吵架(别人的)
防止后期后院起火,人类死太多
https://bbs.3dmgame.com/thread-5979048-1-2.html























回复

使用道具 举报

3

主题

458

帖子

593

积分

高级玩家

Rank: 4

贡献度
6
金元
5693
积分
593
精华
0
注册时间
2011-8-21
舒服的沙发
发表于 2021-1-1 23:28 | 只看该作者
实用帖顶一下  
回复 支持 反对

使用道具 举报

19

主题

1162

帖子

1189

积分

游戏狂人

Rank: 6Rank: 6

贡献度
28
金元
10765
积分
1189
精华
0
注册时间
2009-5-1
硬硬的板凳
发表于 2021-10-29 14:17 | 只看该作者
谢谢楼主详细分享
回复 支持 反对

使用道具 举报

9

主题

2913

帖子

3931

积分

游戏精英

Rank: 8Rank: 8

贡献度
53
金元
37186
积分
3931
精华
0
注册时间
2010-2-17
冰凉的地板
发表于 2021-11-3 18:54 | 只看该作者
感谢分享
回复 支持 反对

使用道具 举报

1

主题

58

帖子

260

积分

高级玩家

Rank: 4

贡献度
21
金元
1755
积分
260
精华
0
注册时间
2017-6-4
5#
发表于 2022-7-14 20:32 | 只看该作者
顶一波···~~~
回复 支持 反对

使用道具 举报

1

主题

440

帖子

692

积分

超级玩家

Rank: 5Rank: 5

贡献度
1
金元
6883
积分
692
精华
0
注册时间
2012-5-23
6#
发表于 2022-7-30 00:56 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

2

主题

342

帖子

829

积分

超级玩家

Rank: 5Rank: 5

贡献度
40
金元
6693
积分
829
精华
0
注册时间
2015-11-22
QQ
7#
发表于 2023-11-6 18:08 | 只看该作者
本帖最后由 a188103143 于 2023-11-19 14:05 编辑

猛攻呢?10格内队友恢复2点行动能力的突击最终技能呢?猛攻就是集结的另一个版本,唉~ 改了名字,又改了内容,一时半会,真找不到!找到了之后真是感慨万分!早期版本跟现在版本差真是一言难尽啊~
回复 支持 反对

使用道具 举报

0

主题

1634

帖子

1838

积分

游戏狂人

Rank: 6Rank: 6

贡献度
14
金元
17815
积分
1838
精华
0
注册时间
2008-7-8
8#
发表于 2024-1-19 17:02 | 只看该作者
感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 07:42 , Processed in 0.030627 second(s), 16 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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