双点医院怎么修改技能 技能修改方法介绍
双点医院在游戏中玩家是不能自定义员工的技能的,正因如此想要获得心仪的员工就必要费时了,本次给大家介绍一下修改员工技能的方法,这样就可以让员工获得指定的技能啦,需要的玩家不要错过了。
双点医院在游戏中玩家是不能自定义员工的技能的,员工的初始技能都是已经决定好了的,正因如此想要获得心仪的员工就必要费时了,本次给大家介绍一下修改员工技能的方法,这样就可以让员工获得指定的技能啦,需要的玩家不要错过了。
1.【技能倍率】
namespace TH20
{
// Token: 0x02000309 RID: 777
[UsedImplicitly(ImplicitUseKindFlags.Assign | ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature, ImplicitUseTargetFlags.Members
public abstract class QualificationBaseModifier : CharacterModifier
{
// Token: 0x06000F5B RID: 3931 RVA: 0x00073EFC File Offset: 0x000720FC
public float Calculate(Room room)
{
if (room == null || this._validRooms == null || this._validRooms.Length == 0)
{
return this._modifier;
}
foreach (SharedInstance sharedInstance in this._validRooms)
{
if (sharedInstance.NotNull() && sharedInstance.Instance == room.Definition)
{
return this._modifier;
}
}
return 0f;
这里改技能属性的倍率。
把其中的_modifier;改为_modifier * 10;,即技能附加属性翻十倍。或者把里面其他内容全部暴力删除,改成
public abstract class QualificationBaseModifier : CharacterModifier
{
// Token: 0x06000F5B RID: 3931
public float Calculate(Room room)
{
return this._modifier * 5f;
}
这样大概就是去除了特定房间才生效的限制。好比一个五级的全科医生,不管是在全科诊室,还是其他诊室,员工属性里面显示的诊断和治疗数值都保持不变,至于属性是不是能够全科通用,没验证过,所以不确定。
2.【技能槽位和拥有5个以上技能】
TH20
Staff 类里
// Token: 0x17000178 RID: 376
// (get) Token: 0x06000F76 RID: 3958 RVA: 0x0000D856 File Offset: 0x0000BA56
public int MaxQualifications
{
get
{
return this.Rank + 1;
}
}
这里就是技能槽位修改。
【Rank + 1;】改为【Rank + 5;】甚至【Rank * 5;】,就等于招聘的初始员工直接就拥有五个(翻五倍)可培训技能空槽。
楼主对编程语言一窍不通,所以也不确定是这里的修改会直接关系到员工最终的可拥有技能数量,还是其他方面。
我自己改的时候,还改了另外的地方:
TH20
StaffRank 类
其中public const int MaxLevels = 5;,这句不知道是指的技能的最大等级,还是人物的最大等级,总之我改成了10以上。
另外,在JobApplicant 类里面,也有跟Staff类里相同的那段内容。
// Token: 0x17000163 RID: 355
// (get) Token: 0x06000DE4 RID: 3556 RVA: 0x0000C444 File Offset: 0x0000A644
public int MaxQualifications
{
get
{
return this.Rank + 1;
}
}
3.【初始员工和招聘员工0技能】
TH20
JobApplicant 类
// Token: 0x06000DE7 RID: 3559
private void AssignRandomQualifications(WeightedList qualifications, Metagame metagame, Level level, int chanceOfEmptyTrainingSlot)
{
int num = this.MaxQualifications - 1;
if (RandomUtils.GlobalRandomInstance.Next(0, 100) > chanceOfEmptyTrainingSlot)
{
num++;
}
this.Qualifications = new List(num);
for (int i = 0; i < num; i++)
{
WeightedList weightedList = new WeightedList();
foreach (KeyValuePair keyValuePair in qualifications.List)
{
if (keyValuePair.Key.ValidFor(this.Definition._type, this.MaxQualifications, this.Qualifications, metagame, level))
{
weightedList.Add(keyValuePair.Key, keyValuePair.Value);
}
}
QualificationDefinition qualificationDefinition = weightedList.Choose(null, RandomUtils.GlobalRandomInstance);
if (qualificationDefinition != null)
{
this.Qualifications.Add(new QualificationSlot(qualificationDefinition, true));
}
}
}
这是员工随机生成分配技能的地方。
把以上内容里的(0,100)改成(100,0)后,初始员工是白板了,但我玩的时候,游戏出错,坏过档,不确定是否跟改这里有关。
然后换了另外的改法,只把方法中的num++ 改成num = 0,以及i < num改为i > num 就是正常全部员工0技能。
4.【0特性及多特性】
TH20
CharacterTraitsManager
public CharacterTraits GenerateRandomTraits(StaffDefinition.Type staffType, Character.Sex sex)
{
List list = new List();
int num = RandomUtils.GlobalRandomInstance.Next(this._config.GameplayTraitsMin, this._config.GameplayTraitsMax + 1);
int numTraits = RandomUtils.GlobalRandomInstance.Next(this._config.FlavourTraitsMin, this._config.FlavourTraitsMax + 1);
for (int i = 0; i < num; i++)
{
CharacterTraitDefinition characterTraitDefinition = this._traits.Choose(null, RandomUtils.GlobalRandomInstance);
if (characterTraitDefinition != null && characterTraitDefinition.CanAdd(list) && characterTraitDefinition.IsValidFor(staffType))
{
list.Add(characterTraitDefinition);
}
}
return new CharacterTraits(list, this._config.FlavourTraits.Instance.GenerateFlavour(numTraits, sex));
}
这里控制员工随机特性的数量。
其中
GameplayTraitsMin
是特性最小数,
GameplayTraitsMax + 1
是最大特性数量.
添加修改数值就好。
取消员工特性,我的笨办法就是把+的数值删除,甚至-1,然后其中的 i < num 也改为 i > num
由于不会修改控制特性出现的好坏,我个人玩的时候,直接暴力取消了全部特性。
小提示:是用dnSpy修改的。
以上就是双点医院怎么修改技能的全部内容了,希望对大家有所帮助,如果还有疑问的话,欢迎访问游戏之家的其他内容。