本帖最后由 cai480 于 2020-10-28 14:18 编辑
首先感谢qweytr_1、ltcszk、时间若倒退、克拉克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
突击被动加载的技能 1、ExpertLightWeapons_AbilityDef;轻武器专家,步枪手枪伤害+20% 2、GoodShot_AbilityDef:突击步枪伤害,伤害/准度+20(对比原先的已加强) 3、Cautious_AbilityDef;好奇者,+20%准确-10%伤害(发现伤害够了,缺命中) 4、ExpertShooter_AbilityDef:射击准度+20 5、AssaultRiflesTalent_AbilityDef;突击步枪精通+10%准确 6、Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次 7、DeadlyDuo_ShootAbilityDef;致命连击,主动,进行2次连击准度翻倍,3AP
重装加载的技能(建议选突击兵做副职业,然后穿狙击装备) 1、ExpertHeavyWeapons_AbilityDef;重武器专家,重武器伤害+20% 2、ExpertShooter_AbilityDef:射击准度+20 3、HeavyWeaponsTalent_AbilityDef;重武器精通+10%准确 4、Strongman_AbilityDef:被动·大力士重武器伤害+30%,感知-10 5、AdrenalineRush_AbilityDef,肾上腺素冲击,狂战大招,主动0ap/5意志,所有动作只消耗1ap,包括攻击,但不能使用耗意志技能 (可配合突击大招使用,先开突击大招,再开肾上腺素) 6、Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次 7、DeadlyDuo_ShootAbilityDef;致命连击,主动,进行2次连击准度翻倍,3AP
狙击手加载的技能 1、Focused_AbilityDef:狙击手,狙击步枪伤害+25%,意志-4 2、SniperTalent_AbilityDef;狙击准度+10% 3、ExpertLightWeapons_AbilityDef;轻武器专家,步枪手枪伤害+20%(突然发现,狙击步枪也算步枪,何必要减命中的技能?) 4、ExpertShooter_AbilityDef:射击准度+20 5、AdrenalineRush_AbilityDef,肾上腺素冲击(1AP消耗,所有行动1AP,下回合昏迷) 6、Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次 7、DeadlyDuo_ShootAbilityDef;致命连击,主动,进行2次连击准度翻倍,3AP
新增狂战士被动 加载的技能(近战版,但是近战除了要靠近,还要2AP打人) 1、CloseQuartersSpecialist_AbilityDef:霰弹枪和近战武器精通伤害+20% 2、Brawler_AbilityDef;好斗者,近战和猛击+50%伤害 3、MeleeWeaponTalent_AbilityDef;近战精通伤害+10% 4、ExpertMelee_AbilityDef;近战专家+25%伤害 5、Reckless_AbilityDef:伤害+20%准度-20% 6、MeleeReturnFire_WithShootAbility_AbilityDef:近战反击 7、Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次
加载的技能(用重武器,建议选突击兵做副职业,然后穿狙击装备) 1、ExpertHeavyWeapons_AbilityDef;重武器专家,重武器伤害+20% 2、ExpertShooter_AbilityDef:射击准度+20 3、HeavyWeaponsTalent_AbilityDef;重武器精通+10%准确 4、Strongman_AbilityDef:被动·大力士重武器伤害+30%,感知-10 5、QuickAim_AbilityDef;快速瞄准主动0/3,下次精通武器射击-1ap 6、Gunslinger_AbilityDef:神枪手,主动0/2,立即使用精通武器射击一次 7、DeadlyDuo_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
|