Project Hospital

Project Hospital

Not enough ratings
Project Hospital自定义代码修改教程
By [1stGLI]Misaka
该指南可以用于制作模组,亦或者可以修改自己的本地文件进行游戏,目前涉及的修改内容大多数经过我本人测试可以使用,嗨起来就完事了。
   
Award
Favorite
Favorited
Unfavorite
前言
本文是我自己整理的自定义代码的修改区域和方式,可用于自嗨或辅助制作模组,如果翻译有误欢迎修改。
本文为2020年8月8日更新。纠正了部分之前的翻译问题,添加了最近添加的新的可修改项,更新了保险部分的修改方式
by Misaka

模组制作方式需要添加程序代码,建议从你已经下载的模组中提取进行修改,已下载的模组位于
steam文件夹\steamapps\workshop\content\868360
粗体部分因人而异。

而你要做的就是要在以下地址添加一个新的文件夹,文件夹名称使用你的模组名
steam文件夹\steamapps\common\Project Hospital\ProjectHospital_Data\StreamingAssets\Addons
照例,粗体部分因人而异

随后,在那个文件夹里面建立一个新的Database文件夹,把你之前从其他模组拉过来的
ModAddon.xml
ModStringTableZhHans.xml
还有你要新添加的文件
Tweakables.xml
全部扔进去,然后进行微调修改。以下我放出了示例,修改加粗部分。

ModAddon.xml修改示例

<Database>
<GameDBAddon ID="MORE_TIME_ABOUT_EVENT (模组名称) "> <Author>Misaka(模组制作人)</Author> </GameDBAddon>
</Database>

ModStringTableZhHans.xml修改示例

<?xml version="1.0"?>

-<Database>


-<GameDBStringTable ID="MORE_TIME_ABOUT_EVENT(模组名字)">

<LanguageCode>zh-Hans(感谢这个翻译组,如果你复制的文件不是显示这个请更改成这个)</LanguageCode>

<LanguageNameLocalized>Chinese(不用我说了吧,不是Chinese的通通改掉)</LanguageNameLocalized>


-<Contributors>

<Name>Misaka(作者名)</Name>

</Contributors>


-<LocalizedStrings>


-<GameDBLocalizedString>

<LocID>MORE_TIME_ABOUT_EVENT(再写一遍模组名)</LocID>

<Text>More time about Event(这里是写你想显示在创意工坊的名字)</Text>

</GameDBLocalizedString>

</LocalizedStrings>

</GameDBStringTable>

</Database>

你做的所有模组都需要上面两个,下面这个是可以更改的。
Tweakables.xml文件,你只需要读下一章节,然后把除了你修改的行之外的其他命令全部删除即可,但务必保留开头和结尾的Database


完成上面的步骤之后,务必退回到上一层文件夹(也就是以你模组名字命名的文件夹),去找一张图片(也就是显示在创意工坊的图片),放在这里,完成这些之后,你就可以开游戏了,游戏会自动读取,然后去上传即可。

你已经是一个成熟的模组制作人了,开工吧!
一、基础修改
所需要修改的文件名称为Tweakables.xml ,需要先将xml改成txt使用记事本打开即可进行编辑操作。请在修改内容前备份原来的文件以保证修改出错后可以覆盖错误文件保证正常游戏(否则你就需要重新下载整个游戏了。。。相信我。。。不要问我为什么知道。)
该文件通常位于:steam所在硬盘\steam文件夹\steamapps\common\Project Hospital\ProjectHospital_Data\StreamingAssets\Database目录下(加粗部分因人而异),实在懒得找就打开steam查看游戏文件然后直接搜索文件名
以下是可以变更的项目对应代码和中文翻译,请根据需求修改{<Value>100000</Value>或<Value>20</Value>等等格式相同的代码}中下划线的部分。
(【例:】将未治疗病人离开时间从24小时调整为72小时。
<GameDBTweakableFloat ID="TWEAKABLE_PATIENT_LEAVE_TIME_HOURS"> <Value>24</Value> </GameDBTweakableFloat>
修改成
<GameDBTweakableFloat ID="TWEAKABLE_PATIENT_LEAVE_TIME_HOURS"> <Value>72</Value> </GameDBTweakableFloat>
即可)
以下部分则是主要内容,记事本中有查找功能,可以复制英文部分进行查找:
TWEAKABLE_COLLAPSE_REPEAT_MIN_HOURS可调整的最小病倒时间
TWEAKABLE_COLLAPSE_REPEAT_MAX_HOURS可调整的最大病倒时间
(大概是病人病倒所需时间,暂不清楚作用测试中,有效降低了死亡率)
TWEAKABLE_EMPLOYEE_LIMIT可调整的标准员工数量限制
TWEAKABLE_EMPLOYEE_LIMIT_EXTENDED可调整的大规模员工数量限制

TWEAKABLE_COLLAPSE_ANESTHEZIOLOGIST_PERCENT_BOOST可调整病倒后麻醉医学属性的医生给予的降低死亡和并发症的百分比提升(大概)

( Patients going straight to clinic on a specific department )(患者直接前往特定部门的诊所)
CLINIC_REFERRAL_PATIENTS_PERCENT直接前往各科诊所病人百分比(跳过急诊科)

SKILL_IMPROVEMENT_RATE_PERCENT技能提升率
LEVELING_RATE_PERCENT水平率百分比
以上两个没有经过测试

FIRST_NAME_COUNT 名字数量
SURNAME_COUNT 姓氏数量

AMBULANCE_LIMIT 救护车限制数量(1~6)
AMBULANCE_MAX_CALLS_PER_DAY 每辆急救车每天最高出车次数
AMBULANCE_MISSION_TIME_HOURS 救护车急救任务时间(从出车到返回医院的时间)

TWEAKABLE_BAD_PRESTIGE 可调整的不良声望标准
TWEAKABLE_GOOD_PRESTIGE 可调整的良好声望标准

(How many patients get spawned after a bad-prestige day)(声望恶劣的一天后改变第二天有多少患者)
TWEAKABLE_BAD_PRESTIGE_PATIENT_COUNT_PERCENT 可调整的不良声望患者百分比
TWEAKABLE_GOOD_PRESTIGE_PAYMENT_PERCENT 可调整的良好信誉付款百分比
( How many extra patients get spawned if prestige is above TWEAKABLE_GOOD_PRESTIGE )(如果声望高于可调整的良好声望,则会产生多少额外的患者)
TWEAKABLE_GOOD_PRESTIGE_PATIENT_BONUS_PERCENT 可调整的良好信誉患者奖金百分比

TWEAKABLE_AMBULANCE_MAINENANCE_COST 可调整的救护车维护费用
TWEAKABLE_EVENT_MONEY_MULTIPLIER 可调整的事件奖金乘子(如为1,则本次=上次+上次*100%,0.5则改为本次=上次+上次*50%)【这里是我猜的还没有验证】
TWEAKABLE_SUCCESSFUL_EVENT_MONEY_REWARD 可调整的无连续成功事件的现金奖励
TWEAKABLE_FAILED_EVENT_MONEY_REWARD 可调整的失败事件罚款
TWEAKABLE_MAX_EVENT_MONEY_REWARD 可调整的最大事件现金奖励
TWEAKABLE_BUILDING_REFUND_PERCENT 可调整拆除的建筑退款百分比
TWEAKABLE_MAX_FLOORS 可调整的最大楼层(2020年写本文的时候最高层数是9,现在据说已经可以超过10)
TWEAKABLE_MIN_VIEW_SIZE 可调整相机的缩小尺寸
TWEAKABLE_MAX_VIEW_SIZE 可调整相机的放大尺寸

PROCEDURE_SKIP_TIME_HOURS 跳过程序时间

TWEAKABLE_WORKLOAD_NONE 房间使用率为该值以下显示无工作负载
TWEAKABLE_WORKLOAD_LOW 房间使用率为该值以下显示低工作负载
TWEAKABLE_WORKLOAD_MEDIUM 房间使用率为该值以下显示中工作负载
TWEAKABLE_WORKLOAD_HIGH 房间使用率为该值以下显示高工作负载
(!-- Above this is critical --)在此以上显示为紧急

TWEAKABLE_PATIENT_LEAVE_TIME_HOURS 可调整门诊未治疗的患者离开时间
TWEAKABLE_PATIENT_LEAVE_WARNING_HOURS 可调整未治疗的患者离开警告时间
TWEAKABLE_PATIENT_MAX_WAIT_TIME_HOURS 可调整的患者治疗最大等待时间
(这三个非常实用,如果是那种巨型医院几乎必不可少的)

TEXTURE_ASSET_FLOOR纹理资产-地板
TEXTURE_ASSET_WALLS纹理资产-墙
TEXTURE_ASSET_WALLS_PATTERN纹理资产-墙的模式
TEXTURE_ASSET_DOORS纹理资产-门
(这里四个因为要连接到别的文档所以不建议修改,除非你打算做mod)


TWEAKABLE_MAX_INSURANCE_COMPANIES 可调整的同时签约的最大保险公司数量

TWEAKABLE_RANDOM_EVENT_PROBABILITY 可调整的随机事件概率
TWEAKABLE_RANDOM_EVENT_START_TIME_GENERATION 可调整的随机事件开始时间生成TWEAKABLE_RANDOM_EVENT_END_TIME_GENERATION 可调整的随机事件结束时间生成
TWEAKABLE_RANDOM_EVENT_AFTER_PLAYER_EVENT_DELAY 玩家事件延迟后可调整的随机事件

TWEAKABLE_STATUS_BAR_MESSAGE_DURATION 可调整状态栏消息持续时间

TWEAKABLE_HOSPITALIZATION_RELEASE_START 可调整的看望住院治疗者来访的开始时间
TWEAKABLE_HOSPITALIZATION_RELEASE_END 可调整的看望住院治疗者来访的结束时间

TWEAKABLE_DIRTY_FLOOR_LEVEL 可调整的脏地面等级
(Max dirt is 200, anything above this gives modifier 'dirty floor')(最大值可调整为为200,高于此值将给出修饰 “脏地面”)

TWEAKABLE_JANITOR_BREAK_TIME_HOURS 可调整的保洁员休息时间

TWEAKABLE_MAX_BOOKMARKED_EMPLOYEES 可调整的最大员工书签
TWEAKABLE_VISIBLE_BOOKMARKED_PORTRAITS 可调整的可见肖像书签

(How long does a non-critical patient need to wait for surgery until surgical staff (that also has other roles) start interrupting their current activities like examinations and checking patients)(非重症患者需要等待多长时间,直到外科人员(还有其他角色)开始中断其当前的活动(例如检查和检查患者)为止)
TWEAKABLE_LONG_WAIT_SURGERY_HOURS 可调整的长时间等待手术时间

(Skill points)(技能点)技能点部分到现在为止没有通过测试,慎重修改
(Basic skill points - janitors, nurses taking care of patients and delivering food)(基本技能要点-住院部医生,护士照顾病人和提供食物)

TWEAKABLE_MAIN_SKILL_POINTS 可调整的主要技能点(未测试)
(Action related skill points (can add to various specialization if character has them))(与动作相关的技能点(如果有角色,可以添加到各种专业中))
TWEAKABLE_SURGERY_SKILL_POINTS 可调整的手术技巧
TWEAKABLE_COLLAPSE_SKILL_POINTS 可调整的抢救技巧
TWEAKABLE_STABILIZATION_SKILL_POINTS 可调整的稳定技巧

(Procedures related skill point)(与程序相关的技能点)
TWEAKABLE_EXAMINATION_SKILL_POINTS 可调整的研究/检查技巧
TWEAKABLE_EXAMINATION_EQUIPMENT_SKILL_POINTS 可调整的研究/检查设备技巧
TWEAKABLE_TREATMENT_SKILL_POINTS 可调整的治疗技巧
TWEAKABLE_TREATMENT_EQUIPMENT_SKILL_POINTS 可调整的治疗设备技能

(Procedures related skill point for radiology)(放射科的程序相关技能点)
TWEAKABLE_EXAMINATION_RADIOLOGY_SKILL_POINTS 可调整的考试放射学技巧

(Doctor diagnosing (doctor without the perk PERK_PRACTICAL_DIAGNOSES)(医生诊断(没有高级诊断知识的医生))
TWEAKABLE_CORRECT_DIAGNOSE_SKILL_POINTS 可调整的正确诊断技巧
TWEAKABLE_INCORRECT_DIAGNOSE_SKILL_POINTS 可调整的不正确的诊断技巧

(Doctor diagnosing (doctor with the perk PERK_PRACTICAL_DIAGNOSES))(医生诊断(具有高级诊断知识的医生))
TWEAKABLE_CORRECT_DIAGNOSE_PERK_SKILL_POINTS 可调整的正确诊断技巧
TWEAKABLE_INCORRECT_DIAGNOSE_PERK_SKILL_POINTS 可调整的不正确的诊断技巧
(Script specific situation)(特别的剧本情况)
TWEAKABLE_DOCTOR_INTERVIEW_QUESTION_SKILL_POINTS 可调整的医生面试问题技巧
TWEAKABLE_JANITOR_DEXTERITY_SKILL_POINTS 可调整的清洁工灵巧技巧
TWEAKABLE_NURSE_CLINICAL_SPECIALIST_SKILL_POINTS 可调整的护士临床专家技能
TWEAKABLE_REPEAT_ACTION_FREE_TIME_SKILL_POINTS 可调整的重复动作自由时间
从这里往上到等待手术时间那里之后的部分都没有通过测试,慎重修改。

(Doctor rating factors in percent)(以百分比为单位的医生评分的乘子)
TWEAKABLE_DOC_RATING_SATISFACTION 满意度评级乘子
TWEAKABLE_DOC_RATING_DISCOMFORT" 不适度评级乘子
TWEAKABLE_DOC_RATING_EACH_COLLAPSE 病倒数量评级乘子
TWEAKABLE_DOC_RATING_EACH_MISDIAGNOSIS 误诊次数评级乘子
TWEAKABLE_DOC_RATING_DEAD 死亡数量评级乘子

TWEAKABLE_DOCTOR_SCORE_PATIENT_COUN 可调整的为医生评分患者数(最后多少个患者影响医生评分)

TWEAKABLE_RESERVATION_BUBBLE_SCALE 可调整的预定目的地的气泡大小(改的够小可以看到上厕所的内容,不过没啥好看的就是了)

(Used for procedures that takes longer if there is not optional equipment (differential diagnosis))(用于没有可选设备的情况下需要较长时间的过程(鉴别诊断))
TWEAKABLE_OPTIONAL_EQUIPMENT_MULTIPLIER 可调整的可选设备乘子

TWEAKABLE_MIMIMUM_OBSERVATION_TIME_HOURS 可调整的最小观察时间

TWEAKABLE_TECHNOLOGISTS_FREE_TIME_DELAY 可调整的技术人员的自由时间延迟

TWEAKABLE_EDGE_SCROLLING_SPEED 可调整的边缘滚动速度
TWEAKABLE_EDGE_SCROLLING_AREA 可调整的边缘滚动区域

TWEAKABLE_DEFAULT_LANGUAGE_CODE 可调整的默认语言代码(用于制作模组)

(Patch 27 difficulty modding options)第27次更新包模组工具
TWEAKABLE_PATIENT_PAYMENTS_PERCENT 可调整患者付款比率(默认100%)
TWEAKABLE_COLLAPSE_TIME_PERCENT 可调整患者死亡时间(个人认为越小死的越快)
TWEAKABLE_NO_DIAGNOSIS_FILTERIN 可调整的没有诊断的过滤值
(这几个也是非常使用的)
<!-- A way to disable mods that aren't compatible with later versions of the game and not maintainded anymore. If youare the author of one of these mods and if you get to update the mod in the future, please let us know! -->
<!-一种禁用与游戏的更高版本不兼容且不再维护的mod的方法。 如果您是其中一个mod的作者,并且将来可以更新该mod,请告诉我们! ->


TWEAKABLE INCOMPATIBLE WORKSHOP MODS 可调整的不兼容创意工坊模型
二、事件修改
所需要修改的文件名称为Events.xml ,需要先将xml改成txt使用记事本打开即可进行编辑操作。请在修改内容前备份原来的文件以保证修改出错后可以覆盖错误文件保证正常游戏(否则你就需要重新下载整个游戏了。。。相信我。。。不要问我为什么知道。)
该文件通常位于:steam所在硬盘\steam文件夹\steamapps\common\Project Hospital\ProjectHospital_Data\StreamingAssets\Database目录下(粗体部分因人而异),实在懒得找就打开steam查看游戏文件然后直接搜索文件名

该部分大多是重复代码,因此我只列举几个关键词,所有部分修改方式一样,除了提到的可以修改的部分(下划线部分)以外其他部分不要乱动,否则会导致游戏崩溃无法加载存档。
(【例:】将火车事故病人人数从8个调整到10个,事件时间从13小时调整到23小时
<GameDBEventVariation ID="EVENT_TRAIN_CRASH">
<DescriptionLocID>EVENT_TRAIN_CRASH</DescriptionLocID>
<EventRef>EVENT_CRASH</EventRef>
<PatientCount>8</PatientCount>
<DurationHours>20</DurationHours>
修改成
<GameDBEventVariation ID="EVENT_TRAIN_CRASH">
<DescriptionLocID>EVENT_TRAIN_CRASH</DescriptionLocID>
<EventRef>EVENT_CRASH</EventRef>
<PatientCount>10</PatientCount>
<DurationHours>23</DurationHours>
即可)

以下部分则是主要内容,以及原始默认数据,记事本中有查找功能,可以复制英文部分进行查找(下划线部分为目前我个人测试过可修改的):
(注:病人数量:全部/急救车送来PatientCount/ PatientCountDisaster)持续时长是默认时长


事件类别:事故EVENT_CRASH

名称:高速公路事故EVENT_HIGHWAY_CRASH
病人数量:3/3 PatientCount
持续时间:13 DurationHours
需要科室:急诊科,普外科,骨科,心脏科,神经科

名称:火车事故EVENT_TRAIN_CRASH
病人数量:8/8 PatientCount
持续时间:20 DurationHours
需要科室:急诊科,普外科,骨科,心脏科,神经科

名称:化学品泄露事故EVENT_CHEMICAL_LEAK
病人数量:5/5 PatientCount
持续时间:10 DurationHours
需要科室:内科

名称:足球赛事故EVENT_FOOTBALL_GAME
病人数量:5/5 PatientCount
持续时间:15 DurationHours
需要科室:急诊科,骨科

名称:公交事故EVENT_BUS_CRASH
病人数量:7/7 PatientCount
持续时间:20 DurationHours
需要科室:急诊科,普外科,骨科,心脏科,神经科


事件类别:疫情EVENT_PANDEMIC

名称:食物中毒EVENT_FOOD_POISONING
病人数量:10 PatientCount
持续时间:15 DurationHours
需要科室:普外科,内科

名称:运动俱乐部EVENT_SPORTS_CLUB
病人数量:15 PatientCount
持续时间:15 DurationHours
需要科室:普外科,内科

名称:水源污染 EVENT_WATER_PIPES
病人数量:12 PatientCount
持续时间:17 DurationHours
需要科室:普外科,内科

名称:动物逃生(不知道啥玩意)EVENT_ANIMAL_ESCAPE
病人数量:5 PatientCount
持续时间:10 DurationHours
需要科室:神经科,内科

名称:流感爆发EVENT_FLU_OUTBREAK
病人数量:10 PatientCount
持续时间:15 DurationHours
需要科室:急诊科,内科


事件类别:灾害EVENT_NATURAL_DISASTER

名称:洪水爆发EVENT_FLOODS
病人数量:10/5 PatientCount/ PatientCountDisaster
持续时间:20 DurationHours
需要科室:急诊科,普外科,内科,骨科,心脏科,神经科

名称:大地震EVENT_EARTHQUAKES
病人数量:10/5 PatientCount/ PatientCountDisaster
持续时间:23 DurationHours
需要科室:急诊科,普外科,骨科,心脏科,神经科

名称:台风来袭EVENT_WINDS
病人数量:8/4 PatientCount/ PatientCountDisaster
持续时间:17 DurationHours
需要科室:急诊科,普外科,骨科,心脏科,神经科

名称:高温天气EVENT_HEAT
病人数量:9/6 PatientCount/ PatientCountDisaster
持续时间:23 DurationHours
需要科室:心脏科,普外科

名称:股票交易(不知道啥玩意)EVENT_STOCK_EXCHANGE
病人数量:8/3 PatientCount/ PatientCountDisaster
持续时间:18 DurationHours
需要科室:心脏科,神经科
(注:病人数量:全部/急救车送来PatientCount/ PatientCountDisaster)
备注:目前不建议调整活动时间超过23小时
稳定性有待考证,不建议制作模组,可能会有bug。
尾言
本文更新时间是在2020年的8月(虽然2021年才发布),此后进行的更新不一定兼容,希望这份指南可以帮到你们罢(微笑),下图图文无关,只不过是增加气氛罢了(最近正在研究的东西)
6 Comments
VincentSupreme 9 Jan, 2023 @ 4:22am 
请问skill points部分的修改有效果吗@SerikaJin
SerikaJin-CN 4 Sep, 2022 @ 10:01pm 
实测,在(Skill points)下面的代码,都是员工在各种工作下获得经验的多少,不知道为什么叫“技能点”哈哈
GoldTk 23 Jan, 2022 @ 6:59am 
Thx!great!:steamhappy:
michaellululu8 10 Nov, 2021 @ 9:18am 
thank you
小心二次元 10 Oct, 2021 @ 11:57pm 
好棒!感谢!:steamhappy:
SerikaJin-CN 1 Sep, 2021 @ 9:59am 
总结的不错!:pani: