双点医院Epic版本1.30.0-0.local+2025-03-14.1645模组模板
提前说明:本模组修改了代码,但是默认保持1倍,也就是游戏原始倍率,请自行使用Dnspy或其它反编译工具进行倍率调整,需要搜索的类和修改方法都已写明,请按照喜好自行调整倍率即可,Dnspy如果编辑方法和编辑类无法保存,请直接在需要调整数值的地方右键编辑IL指令,进入调整数值即可,不需要修改其它代码了,亲测有效。(PS.此后不再更新这版本的模组了,除非等以后游戏再次更新再看情况了,所以出了一个基础模板,让大家根据自己的喜好自行调整,工具下载地址在最下方.)本模组将在nexusmods同步更新,如果需要旧版可自行搜索下载.
1、按'`'键开启控制台
2、按'\'键获得正向的视角
3、员工列表排序优化(统一技能按顺序排列)
4、跳过年度颁奖典礼(新增)
5、重复进行研究(新增)
6、重复进行营销(新增)
以下修改内容,自行使用Dnspy调整倍率。(作者默认设置为1倍,为游戏原始倍率)
7、游戏任意地图初始资金增加倍率控制(新增正负判断)
例如烂丁山地图,初始资金为负债-10000,修改倍率为正数*1f,负数*-1f。
修改 System.Int32 TH20.FinanceManager::AdjustInitialBalance(System.Int32) 类。
8、破产金额上限和通知显示的内容。(游戏默认为300000,建议不超7000倍=2100000000.)(新增)
破产金额上限:
修改 System.Single TH20.HospitalFailState::BANKRUPTCY_THRESHOLD_MULTIPLIER 类。
修改 System.Single TH20.HospitalFailState::WARNING_THRESHOLD_MULTIPLIER 类。
通知显示内容:
修改 System.Single TH20.FinanceManager::BANKRUPTCY_THRESHOLD_MULTIPLIER 类。
修改 System.Single TH20.FinanceManager::WARNING_THRESHOLD_MULTIPLIER 类。
9、修改自助售货机和接待台经验获取倍率。
修改 BehaviorDesigner.Runtime.Tasks.TaskStatus TH20.BTA.KioskSeePatient::OnUpdate() 类。
修改 BehaviorDesigner.Runtime.Tasks.TaskStatus TH20.BTA.ReceptionistSeePatient::OnUpdate() 类。
get.XP.Modify(this.XP * 1f, 1f); // 1f改为自定义数值倍率
10、疫苗范围和疫苗数量不减少
修改 TH20.ChallengeEpidemic.VaccinateCharacter 类。
float num = 1f; // 1f改为自定义数值倍率 疫苗范围
this._numberOfVaccines--; // --改为++ 疫苗不减反增
11、员工、病患和其它NPC移动速度(新增不同角色判断,以前的方法暴力修改,结果全部倍增,有些地图会卡关,病患一直在门口徘徊不进去,就是移动速度过快导致的。)(新增)
修改 System.Void TH20.NavPath::SetMaxSpeed(System.Single) 类。
根据Staff、Patient和null来区分员工、病患和其它NPC。
maxSpeed *= 1f; // 1f改为自定义数值倍率,低于1f减速,高于1f则加速。
12、员工学习速度、员工教学速度和培训速度。
修改 System.Single TH20.Staff::GetTrainingLearningSpeed() 类。
return this.RankDefinition.TraineeLearningSpeed * Mathf.Max(this._getTrainingLearningSpeedParam.Multiplier, 0f) * 1f; // 1f改为自定义数值倍率
修改 System.Single TH20.Staff::GetTrainingTeachingSpeed() 类。
return this.RankDefinition.TrainingMultiplier * Mathf.Max(this._getTrainingTeachingSpeedParam.Multiplier, 0f) * 1f; // 1f改为自定义数值倍率
修改 TH20.GameAlgorithms.CalculateTrainingPointLearnRate 类。
return trainingLearningSpeed * trainingTeachingSpeed * num * num2 * 1f;// 1f改为自定义数值倍率
13、全科室治愈率(新增)
修改 TH20.GameAlgorithms::CalculateEstimatedTreatmentOutcome(TH20.Patient,TH20.Staff,TH20.Room,TH20.RoomItem) 类。
float num8 = num * 1f + num5 * 1f; // 1f改为自定义数值倍率
float num11 = num * 1f + num6 * 1f; // 1f改为自定义数值倍率
解释一下代码的意思:(可自行调整需要的配置,不建议改太大,1.5倍以下合适。)
float num8 = num + num5; // 医护人员技能+房间和物品的最小治疗加成
float num11 = num + num6; // 医护人员技能+房间和物品的最大治疗加成
14、全科室诊断率(新增)
修改 System.Void TH20.Patient::ModifyDiagnosisCertainty(System.Single) 类。
float num = global::UnityEngine.Random.Range(1f, 101f); // 自定义数值包含1f,不包含101f。(默认加1-100)
this.DiagnosisCertainty = Mathf.Min(this.DiagnosisCertainty + num, 100f); // 100f为诊断率上限
建议修改:(这样可以让诊断率上限提高到200,随机加成从1-200不等,有随机性,不至于每次诊断都超过100.)
float num = global::UnityEngine.Random.Range(1f, 201f);
this.DiagnosisCertainty = Mathf.Min(this.DiagnosisCertainty + num, 200f);
15、休息时间减少(新增)
修改 System.Single TH20.Staff::GetBreakLength() 类。
return base.Level.WorkLifeBalanceManager.GetBreakDuration(this.Definition._type, this.Rank) * 1f; // 1f改为自定义素质倍率,低于1f减少休息时间,高于1f增加休息时间。
16、员工活力消耗和恢复
修改 TH20.RoomDefinition.GetStaffEnergyModifier 类。
num *= GameAlgorithms.CalculateRoomPrestige(room.FloorPlan).Data.StaffRoomEnergyMultiplier * 1f;或者在下方添加num *= 1f;都可以。 // 1f改为自定义数值倍率
return this._staffEnergyModifierWork * 1f; // 参数_staffEnergyModifierWork代表工作的时候的体力消耗。
return this._staffEnergyModifierIdle * 1f; // 参数_staffEnergyModifierIdle代表不在工作也不在休息室,闲逛的时候的体力消耗。
17、房间声望倍率
修改 TH20.RoomPrestige TH20.GameAlgorithms::CalculateRoomPrestige(TH20.FloorPlan) 类。
num4 += roomItem.Prestige * 1f; // 1f改为自定义数值倍率
18、高速刷新招聘人员(新增)
修改 System.Void TH20.JobApplicantPool::Update(System.Single,System.Single[],TH20.WeightedList`1<TH20.QualificationDefinition>,TH20.CharacterTraitsManager,TH20.Metagame,TH20.Level,System.Boolean,System.Boolean) 类。
this._nextApplicantTime = this._config.GetTimeUntilNextApplicant(this._reputationTracker) * 1f / (this.GetMarketingCampaignMultiplier() + this._jobApplicantManager.EnergyStaffApplicantRateModifier); // 1f改为自定义数值倍率,低于1f则缩短时间,高于1f则延长时间。
19、房间大小无限制(最小1×1)
20、机器损耗速度
修改 TH20.roomitem.GetAttributeMultiplier 类。
return 1f; // 自定义数值倍率,低于1f降低损耗,高于1f加快损耗。
21、机器升级速度
修改 TH20.RoomItemUpgradeComponent.UpgradeItem 类。
this.Progress += num2 * Time.deltaTime * 1f; // 1f改为自定义数值倍率,低于1f则降低速度,高于1f则加快速度。
22、机器维修速度
修改 System.Void TH20.RoomItemMaintenanceComponent::Tick() 类。
num *= Time.deltaTime * 1f;或在下方插入num *= 1f;都可以。 // 1f改为自定义数值倍率,低于1f则降低速度,高于1f则加快速度。
23、物品效果范围
修改 System.Void TH20.HospitalAttributeMap::ModifyMapAttribute(TH20.RoomItem,System.Single,System.Single) 类。
radiusInCells *= 1f; // 1f自定义数值倍率,低于1f则缩小范围,高于1f则加大范围。
24、 员工和病患各项需求倍率(新增)
修改 TH20.Attributes.Update 类。
这里特别说明一下,还是根据员工和病患分开判断来实现效果。员工的活力(工作时消耗,休息时恢复)和XP也单独进行判断,XP不知道是否生效,这个功能暂时保留,等待以后有时间再研究。经验这一块目前测试能生效的地方就自助售货机、接待台和TH20.AttributeFloat::Modify中的Modify方法,但是修改Modify方法会导致其它属性也出现倍增的情况,比如地震/雷击这类特殊情况等等,所以暂时不建议修改。
主要修改:num2 *= 1f;和num2 /= 1f; // 1f自定义数值倍率,*=代指恢复增加倍率,/=代指需求降低倍率。低于1f则低于游戏默认值,高于1f则高于游戏默认值。低于1f需求增快,高于1f需求降低。建议修改超过1f即可。
25、卫生指数(新增)
修改 System.Void TH20.GameAlgorithms:: PassHygieneBetweenCharacters(TH20.Character,TH20.Character) 类。 // PassHygieneBetweenCharacters 变表情了,所以加了个空格
attributeFloat.Modify(-num3 * GameAlgorithms._config.PersonToPersonHygieneMultiplier * 1f, 1f); // * 1f修改为自定义数值倍率,低于1f卫生降低幅度减小速度减慢,高于1f卫生降低幅度增大速度加快。
26、研究获得金钱(新增)
修改 System.Void TH20.RewardMoney::Apply(TH20.Objective,TH20.Level) 类。 // 数值
修改 System.String TH20.RewardMoney:: Description(TH20.Objective) 类。 // 描述 Description 变表情了,所以加了个空格
具体修改:
num = 50000;和num = 20000; // num = 自定义数值,如果研究金钱等于20000那么每次研究完成获得20000金钱,时光DLC中有个新的研究,金钱等于50000那么每次获得50000金钱.修改num后的数值可以实现每次研究的金钱为自定义数额,下方的描述也是如此修改。
27、研究获得K币(新增)
修改 System.Void TH20.RewardSilver::Apply(TH20.Metagame) 类。 // 数值
修改 System.String TH20.RewardSilver:: Description(TH20.Objective) 类。 // 描述 Description 变表情了,所以加了个空格
和研究获得金钱一样,修改“num = 10;”“num = 20;” // num = 自定义数值,和研究金钱一样可以自行扩展其它判定数值。当游戏默认值为10、20、30、40时,可以获得 num = 自定义数值的K币。
28、员工薪酬满意度
29、研究速度
修改 System.Void TH20.RoomLogicResearch::Tick() 类。
float num2 = num / (float)count * Time.deltaTime * 1f; // 1f改为自定义数值倍率,低于1f降低速度,高于1f加快速度。
30、员工的晋升经验(新增)
修改 System.Boolean TH20.Staff::HasMaxXP() 类。
return this.XP != null && this.RankDefinition != null && this.XP.Value() >= this.RankDefinition.MaximumXP * 1f; // 1f改为自定义数值倍率,低于1f减少晋升经验需求值,高于1f加大晋升经验需求值。
31、特性修改(新增)
重新设计修改方案,增加对中文和英文版本的支持(其它语种请自行添加,我只找到了英文的资料。)
新增以下功能:
固定选择特性,可以让用户自行选择一些特性,每次员工招聘都默认带有该选择特性。(给大伙添加了一个默认中性的恋爱狂)
随机添加2-5个特性,除恋爱狂剩余的其它特性。
随机添加2-3个隐藏特性,比如魔力+5、书呆子、一些自述但是不会再次显示的隐藏特性。
控制总特性的最小和最大数量,默认设置为1-14,应该足够了,建议最大不超过15,太多容易游戏卡死,反正我测试的时候最多也就18个,再多招聘的时候包卡死游戏。
正向特性:"Positive","乐观主义者","Tireless","不知疲倦","Motivated","精神抖擞","FastLearner","一学就会","Heart-Throb","美颜心悸","Charming","魅力十足","Funny","有趣的人","GreenFingers", "园艺高手","Cheap","我很便宜","Healer","治愈者","Inspiring","激励者","Hygienic", "小洁癖","Entertainer","艺人","Teacher","老师" // Positive 变表情了
负面特性:"Litterer","垃圾制造者","Evil","邪恶本性","Grumpy","闷闷不乐","Unmotivated","无精打采","Gross","粗俗不堪","WeakBladder","膀胱不好","Unhygienic","不讲卫生","Hangry","饿怒症","ToiletRage","厕怒症","ShortTemper","急性子","Nasty","讨厌鬼","Sleepy","瞌睡虫","Dirty","脏脏的","Expensive","我很贵","Lazy","懒人","Stupid","笨拙","Boring","无聊","Argumentative","好辩"
修改 TH20.CharacterTraitsManager/CustomTraitConfig 类。
public List<string> FixedTraits = new List<string> { "Romantic", "恋爱狂" }; // 固定选择特性
public List<string> RandomPoolTraits = new List<string>
{ // Positive 变表情了
"Positive", "乐观主义者", "Tireless", "不知疲倦", "Motivated", "精神抖擞", "FastLearner", "一学就会", "Heart-Throb", "美颜心悸",
"Charming", "魅力十足", "Funny", "有趣的人", "GreenFingers", "园艺高手", "Cheap", "我很便宜", "Healer", "治愈者",
"Inspiring", "激励者", "Hygienic", "小洁癖", "Entertainer", "艺人", "Teacher", "老师","Litterer","垃圾制造者","Evil","邪恶本性","Grumpy","闷闷不乐","Unmotivated","无精打采","Gross","粗俗不堪","WeakBladder","膀胱不好","Unhygienic","不讲卫生","Hangry","饿怒症","ToiletRage","厕怒症","ShortTemper","急性子","Nasty","讨厌鬼","Sleepy","瞌睡虫","Dirty","脏脏的","Expensive","我很贵","Lazy","懒人","Stupid","笨拙","Boring","无聊","Argumentative","好辩"
}; // 随机特性池
public int MinGameplayTraits = 2; // 最少随机特性数量
public int MaxGameplayTraits = 5; // 最多随机特性数量
public int MinHiddenTraits = 2; // 最少隐藏特性数量
public int MaxHiddenTraits = 3; // 最多隐藏特性数量
public int MinTotalTraits = 1; // 总特性最少数量
public int MaxTotalTraits = 14; // 总特性最多数量
公式:固定+随机=总特性数量,隐藏不计算在内,因为聘用员工后无法再查看相关信息。
目前修改的数量为:最少1+2=3个特性,最多1+5=6个特性。
其它语种修改,请自行对比中英文双引号内的内容进行修改,我是没办法实测其它语种了。中文和英文经过实测,可以正常游戏。
Dnspy开源地址:https://github.com/dnSpyEx/dnSpy (最新6.5.1版本)
旧版本:https://github.com/dnSpy/dnSpy (6.1.8版本)
下载地址:
https://github.com/dnSpyEx/dnSpy ... dnSpy-net-win32.zip
https://github.com/dnSpyEx/dnSpy ... dnSpy-net-win64.zip
https://github.com/dnSpyEx/dnSpy ... py-netframework.zip
(电脑什么位数,就下载对应的版本即可。建议下载6.5.1新版的。)
https://github.com/dnSpy/dnSpy/r ... dnSpy-net-win32.zip
https://github.com/dnSpy/dnSpy/r ... dnSpy-net-win64.zip
https://github.com/dnSpy/dnSpy/r ... py-netframework.zip
(网上有很多加速Github的网站,这里不多赘述了,自行搜索加速下载吧。)
**** Hidden Message *****
DLC解锁补丁:请前往https://bbs.3dmgame.com/thread-6601524-1-1.html处下载.解压至TPH.exe游戏进程目录.
另外再补充一个Epic版本已知问题,有个成就"最佳穿越机"无法解锁(时光DLC的上镇地图),官方让我去联系世嘉官方,一看就是没结果的事,不知道大伙有没有遇到这情况,请留言分享一下.
本帖最后由 nudest 于 2025-8-7 19:14 编辑
概览-政策成功突破.{:3_112:}
概览-价格成功突破.{:3_112:}
概览-贷款也已成功突破.
请问Steam版可以用吗? qq42436518 发表于 2025-7-19 23:10
请问Steam版可以用吗?
不支持Steam版本噢,Steam版本去我的另一个帖子下载. 感谢分享!给你点赞!感谢分享!给你点赞! nudest 发表于 2025-7-20 00:03
不支持Steam版本噢,Steam版本去我的另一个帖子下载.
你好,steam没有新增的跳过年度和重复研究,请问需要怎样修改的?
楼主太棒了!我先下为敬!感谢论坛,感谢LZ热心分享! 添砖加瓦 学习一下
来吧66666666666666666666667
jklasjdflkashdjklfjnaklsdhfkljasdf
阿迪斯发到付地方大师傅但是法大师傅
感谢楼主
感谢分享
主太棒了!我先下为敬!感谢论坛,感谢LZ热心分享! 333333333333333333
感谢分享 非常之谢谢 看看 学习下
66666666666666666666666666
来测试一下
楼主辛苦了,谢谢楼主,感谢楼主分享,楼主好人一生平安!!!
感谢分享
感谢分享
感谢分享
1111111111
学习学习 非常感谢
感谢楼主分享 6666666666666
66666666666666666
感谢分享~~~~~~~~ 感谢分享