時間:2018-09-19 08:23:33 來源:當游網 作者:當游網 編輯:dywlxt 字體大小:
雙點醫院在游戲中玩家是不能自定義員工的技能的,員工的初始技能都是已經決定好了的,正因如此想要獲得心儀的員工就必要費時了,本次給大家介紹一下修改員工技能的方法,這樣就可以讓員工獲得指定的技能啦,需要的玩家不要錯過了。
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;
}
這樣大概就是去除了特定房間才生效的限制。好比一個五級的全科醫生,不管是在全科診室,還是其他診室,員工屬性里面顯示的診斷和治療數值都保持不變,至于屬性是不是能夠全科通用,沒驗證過,所以不確定。
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;
}
}
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技能。
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修改的。
以上就是雙點醫院怎么修改技能的全部內容了,希望對大家有所幫助,如果還有疑問的話,歡迎訪問當游網的其他內容。
0