

会长天下第二

会长天下第二

TA什么都没有写

发帖达人Ⅰ
会长天下第二
0
玩过游戏数量
0秒
总游戏时长

本指南将帮助你手动为《环世界》的模组创建翻译,这需要你具备XML文件结构的相关知识以及对其工作逻辑的了解。本指南面向那些希望理解翻译原理,而非依赖自动生成工具的用户。按照这些说明操作,你将能够创建出可在游戏中正常运行的高质量翻译。### 引言 在 Steam 上查阅俄语指南后,我发现目前缺乏一份全面的手动翻译模组流程指南。现有的指南,例如 Azzkal 或 Pashka 发布的教程,均使用专用程序进行自动翻译生成。尽管这些方法有其存在的合理性,也可能对部分用户有所帮助,但对我个人而言,这些方式显得复杂且繁琐。不过,我决定编写一份自己的指南,在其中展示如何完全手动进行翻译,不使用自动生成XML文件的工具。这不仅是一项有用的技能,也是理解游戏工作原理的重要一步。弄明白这一点后,你就能轻松翻译任何模组了。我将以我的模组“+medical supplies..”为例进行说明。适用于1.版本。6 所需工具 接下来要介绍的是能帮助你完成这项艰巨任务的程序。 1. Notepad++[notepad-plus-plus.org] — 这是我们的主要工具。你可以把它想象成记事本,但具备强大的附加功能。下载时需要使用互联网加速服务。我最近查看相关说明发现,在俄罗斯不使用这些服务的话,直接链接根本无法正常工作。可以推荐 Sota [t.me]。我一直在用它,目前没有出现问题。它是付费的,但有一个仅需10卢布的试用期。 2. 《环世界》——为了方便找到模组文件夹。 还需要注意的是,你需要掌握目标翻译语言。使用翻译工具可能会导致翻译错误。不过,如果没有其他办法,也可以使用翻译工具,尽管这不是最准确的方法。 如何找到所需的模组文件夹?启动《环世界》,点击“模组”
在列表中找到所需的模组,或通过搜索查找
点击所需的模组
点击“高级设置...”
点击“打开文件夹”
打开了模组文件夹
由于我的模组位于游戏文件夹中,所以我的模组路径相当简单。但如果您是通过Steam创意工坊下载的模组,由于其存储结构的原因,在资源管理器中手动找到它可能会有些困难。例如,Rimefeller模组的路径如下: C: SteamLibrary steamapps workshop content 294100 1321849735。 模组标识符是路径末尾的数字值,这增加了查找难度。正是因此,我上述所描述的方法是处理模组时最便捷且最优化的方式。 一些关于结构的理论 《环世界》的所有翻译均通过XML文件实现。模组翻译的结构由以下关键元素组成。翻译文件夹(Languages/YourLanguage)中包含以下文件夹: DefInjected — 用于存放与游戏对象、动作、事件及其他通过Def类定义的元素相关的翻译。DefInjected中的文件用于翻译特定字段,例如物品、生物、技能的名称和描述等。Keyed——用于存储与游戏内具体对象(如物品或角色)无直接关联的字符串翻译。相反,它包含通用的界面文本元素、消息、系统通知以及描述,这些内容会在游戏的不同位置或程序集(Assemblies)中使用。这些字符串通常带有程序调用以显示文本的键值。Strings(若使用)——用于游戏中的各种字符串,包括步兵、动物、世界等的名称。实际上,这是一个庞大的数组,包含可用于生成角色、地点名称和句子的字符串集…… 如何创建翻译结构? 创建名为“Languages”的文件夹
在文件资源管理器的空白处右键点击(Windows 10系统),或点击“新建”按钮(Windows 11系统)。然后选择“文件夹”,并将其命名为“Languages”。正确命名所有文件夹至关重要——即使名称中存在微小错误,游戏也将无法找到您的翻译文件,从而导致错误和翻译缺失。 打开名为“Languages”的文件夹,然后创建一个名为“Russian”的文件夹。
您可以为您的翻译创建任何文件夹,例如“French”(法语)或“Czech”(捷克语),具体取决于您要翻译的语言。文件夹名称必须与翻译语言相对应,以便游戏能够正确识别。 打开名为“Russian”(俄语)的文件夹,并创建两个名为“DefInjected”和“Keyed”的文件夹。
在我的模组中,不存在与具体游戏对象无直接关联的文本。不过,为了全面阐述翻译相关主题,我还是会举一个例子。这样能更好地理解如何处理这类文本以及它们在何时可能会用到(或许之后会补充)。 如何判断需要翻译的内容? 我们需要回到模组的根目录。
打开名为“1.5”的文件夹
文件夹名称可能因游戏版本而异,但这不应导致显著变化。在卡片上可以看到名为“1.5”和“1.4”的文件夹。就我而言,它们之间没有区别,因为我没有使用最新更新中的新方法或功能。翻译可以基于“1.”文件夹创建。4",但仍建议使用与游戏当前版本对应的文件夹以确保最大兼容性。 打开名为“Defs”的文件夹
(说明)“Defs”文件夹包含描述各种游戏对象、机制……的配置文件。这些文件以XML语言编写,用于定义游戏中的所有内容。 打开名为“Items”的文件夹
在这个阶段,文件夹和文件的结构可能与示例有所不同,但本质保持不变。正如我已经提到的,“Defs”文件夹中存放着配置文件。在我的情况中,那里有两个文件夹——“Items”和“SoundDef”,但在其他模组中可能会有完全不同的文件夹,或者有我这里没有的额外文件夹。无论如何,你的任务是找到包含待翻译文本行的XML文件。 打开名为“Drugs”的文件夹。
双击“Item_Psychotrope.xml”
该文件应使用您电脑上安装的标准XML文件处理应用程序打开。在我这边是Microsoft Edge,但您可能会有其他应用程序。作为示例,我选择了“Item_Psychotrope.xml”,因为其中包含足够多的待翻译行。您应该会看到类似的内容。
原则上,所有与物品、服装或事件的工作逻辑无关的内容都可以进行翻译。不过,您可能一下子难以理解,因为这是您第一次接触。我会尽量详细地解释所有内容,以便每个人都能弄明白。 说明:例如,我们可以看这样一行代码:<ThingDef ParentName="MakeableDrugPillBase">。无法翻译此内容,因为该语句用于在游戏的XML文件中基于现有基类的属性继承来定义新对象。在这种情况下,MakeableDrugPillBase是一个基类,包含可制作药片类药物的通用参数和行为。由此可知,该语句与游戏逻辑相关,因此不可翻译。现在我们来看看<标签>Psychotrope</标签>。它用于为游戏内对象指定名称或显示名称。标签内的值,在本例中为“Psychotrope”,将在界面中向用户显示,而非对象的技术名称。这一行已经可以进行翻译,因为它不影响游戏逻辑,仅用于在界面中显示信息。还有一行代码<defName>Psychotrope</defName>,这一行不能翻译。它定义了对象的唯一内部名称,游戏用它来识别该元素。它是一个技术标识符,不会直接显示给玩家,但会在代码中用于引用、设置和游戏进程逻辑。修改或删除defName可能会破坏该对象与游戏其他元素的关联。总结:仅可翻译游戏内直接显示的内容,负责内部运行和逻辑的部分无需修改。 终于到翻译环节了 恭喜您已进入翻译阶段!但首先需要确认您已准备好所有必要的工具。您需要打开计划进行翻译的物品的XML文件,建议使用Notepad++进行操作,我们将使用该编辑器进行工作。 进入“DefInjected”文件夹,该文件夹已创建,路径为:C: ... Languages Russian DefInjected。 创建“ThingDef”文件夹。
创建XML文件“Item_Psychotrope.xml”:在文件资源管理器的空白处右键点击(Windows 10系统),或点击“新建”按钮(Windows 11系统)。然后选择“文本文档”并将其命名为“Item_Psychotrope.xml”。可能会出现无法更改文件类型的问题,解决方法很简单:打开文件资源管理器并导航到包含目标文件的文件夹,点击顶部菜单栏的“查看”选项卡(Windows 10系统)或“参数”(Windows 11系统中为三个点图标)。勾选“文件扩展名”选项——现在将显示包含扩展名的完整文件名。右键点击.txt文件并选择“重命名”。将文件扩展名从.txt更改为.xml(例如,将file.txt改为file.xml)。如果出现文件可能损坏的警告,请确认更改。现在文件将为XML格式。
右键点击“Item_Psychotrope.xml”,然后点击“用Notepad++编辑”。该文件应为空文件。
我的照片卡上有文字。如果你担心自己没有类似的东西,别担心——本来就应该是这样的。我正在用一个现成的例子来展示所有内容。 我们来写<LanguageData>和</LanguageData>
在《环世界》中,标签<LanguageData>和</LanguageData>用于在本地化文件中标记语言数据块的开始和结束。它们构成了XML结构,其中包含翻译字符串。所有翻译和文本元素都必须位于这些标签内,游戏才能正确识别并在界面中显示它们。关于标签的一些理论 注释在代码中起着重要作用,尽管它们与标签没有直接关系。从上面的示例可以看出,注释用绿色字符突出显示——这种颜色在不同的编程语言中经常用于注释。注释对程序的执行或文档的标记没有任何影响,您可以在其中记录任何信息。它们能帮助其他开发者无需仔细研究代码就能更快理解您的代码逻辑。良好的风格是使用便于翻译的注释格式:<!-- EN (原始语言): Psychotrope (原文) -->。 翻译系统通过标签实现,无需修改游戏源代码即可对文本字符串进行本地化。这些标签是每个可翻译文本元素的唯一标识符。标签采用层级结构构建:首先是对象(如物品或物质等)的唯一标识符,接着是同一层级的标签,然后是下一级嵌套标签,以此类推,直至达到用于翻译文本的最终标签。它们之间用点分隔。.\n带标签的示例
我们拥有一个独特的对象标识符(<defName>Psychotrope</defName>),并且需要翻译其名称(<label>Psychotrope</label>)。为此,需要按以下方式记录:<Psychotrope.label>致幻剂</Psychotrope.label>。标签结构采用以下形式:<唯一标识符.label>您的文本</唯一标识符.label>。就是这样。 另一个带标签的示例
现在需要翻译ingestCommandString。运用章节中关于标签的理论来进行翻译。注意,标签<ingestCommandString>Take {0}</ingestCommandString>嵌套在<ingestible></ingestible>标签内。应在翻译标签结构中指明这一点。最终翻译标签将如下所示:<Psychotrope.ingestible.ingestCommandString>服用 {0}</Psychotrope.ingestible.ingestCommandString>。为了便于理解,可以这样设想:在创建用于翻译的标签时,我们会指明目标标签的路径,并将其添加到末尾。 再举一个关于标签的例子。
有时需要翻译疾病阶段或类似位于stages中的结构,而阶段本身位于<li></li>标签内。合理推测,翻译标签应如下所示:<PsychotropeWithdrawal.stages.li.withdrawal.label>精神药物戒断</PsychotropeWithdrawal.stages.li.withdrawal.label>。但这不会生效。正确的格式为:<PsychotropeWithdrawal.stages.Psychotrope_withdrawal.label>精神药物戒断</PsychotropeWithdrawal.stages.Psychotrope_withdrawal.label>。
从这个例子可以看出,如果名称中出现空格,需要将其替换为“_”。还有另一种编写标签的方式,这种方式稍微简短一些,但如果其他人想理解你所写的内容,就会难以理解你的标签。
这里可以看到,最初的标签被记录为<PsychotropeWithdrawal.stages.Psychotrope_withdrawal.label>精神药物戒断</PsychotropeWithdrawal.stages.Psychotrope_withdrawal.label>。为了简化和缩短记录,可以用“1”代替“Psychotrope_withdrawal”。为什么是“1”而不是“2”呢?这是因为在许多编程语言中,数组和列表中元素的计数是从“0”开始的,而不是像日常生活中习惯的那样从“1”开始。因此,第一阶段是“0”,第二阶段是“1”。最终正确的标签如下:<PsychotropeWithdrawal.stages.1.label>精神药物戒断</PsychotropeWithdrawal.stages.1.label>。两个示例均正确,但我建议使用第一个。 依此类推,可翻译所有需要的内容。不过还有一个重要点:n 会将文本换行。翻译测试 首先启用开发者模式——该模式可实现世界的即时加载,并能创建所需的对象、事件、角色及其他多种内容。 进入游戏后,点击“设置”。
点击红色叉号
之后,红色叉号将变为绿色对勾,主菜单顶部会出现六个白色图标。如果您安装了添加额外开发者图标的模组,图标数量可能会有所不同,这是正常现象,无需担心。
恭喜您,现在您已进入开发者模式!接下来请选择您进行翻译的语言,并确保模组已在模组选项卡中激活。 进入设置,打开“通用”选项卡,然后选择您翻译的语言。
在我的情况中是俄语,但您可以选择其他任何语言。选择后需要等待一段时间,以便游戏切换到所选语言。 现在我们来检查翻译。 点击“快速启动”
根据所选语言,主菜单中的文字将会发生变化,请做好相应准备。 点击白色的类似太阳且右侧带有三角形的图标。
找到或点击“生成物品...”(Spawn thing...)
根据您想要检查的内容,需要在列表中找到相应的对象——可能是植物、物品、棋子等。在我的情况下,这是物品。 找到您需要的物品、事件……
完成所有这些操作后,你可以通过鼠标左键生成所选对象。查找所需元素应依据def name——这是物品、事件等的XML文件中指定的唯一名称。
进入物品信息
如果一切看起来正常,可以完成该流程。但如果出现错误,且您不知道问题所在,可以考虑这样的情况。例如,我可能在翻译标签中犯了错误。
如果我将SatiDelay.description写成了SataDelay.description,这可能会导致错误,因为系统无法找到所需的标签。因此,在检查正确性时,物品描述中可能会出现英文字母。要修复此问题,需要返回XML文件并修正标签中的错误,将SataDelay.description替换为正确的SatiDelay.description。
在这种情况下,可以通过逻辑推理找到问题所在。如果描述翻译有误,错误很可能出在标签上。但有时很难弄清楚具体问题出在哪里。让我们来看看在这种情况下可以采取哪些措施。 进入游戏主菜单,点击白色的、类似太阳且右侧有一个三角形的图标。
点击“撰写背景故事翻译...”
点击“保存翻译报告”
之后,您的桌面上会出现一个txt格式的文档。
这看起来很吓人,但不必担心。关键是要注意文件中名为“Def-injected translations load errors”的部分,如图所示。在我的案例中,错误信息是:“Found no Verse.ThingDef named SataDelay to match SataDelay.description (Item_SatiDelay.xml)”。由此可以看出,问题出在Item_SatiDelay.xml文件以及SataDelay.description标签上。现在既然我们知道了错误所在,只需修复它即可。就是这样。如果您创建了独立的模组翻译,整体流程不会有任何变化。之前提到的所有内容同样适用于独立翻译。关键是要在模组选项卡中同时激活您的翻译和模组本身。
如何在Steam中上传翻译? 假设你已完成模组翻译,现在想要将其上传至Steam,但不知道该如何操作。此时你需要再次使用文件管理器,创建另一个XML文件,并在为你的翻译创建预览图时展现一些创意。实际上,这比看起来要简单。 步骤如下: 1. 进入游戏文件夹 标准路径:C: SteamLibrary steamapps common RimWorld 2. 进入“Mods”文件夹
创建“Translated”文件夹
实际上,文件夹名称并不重要。当用户下载您的翻译时,它会自动替换为数字标识符。不过,选择一个您自己能理解的名称很重要,这样您就能始终知道这是哪个模组以及它的用途。 创建名为“About”的文件夹,并复制您的翻译包。
此前我们已经创建了翻译文件夹,现在只需将其复制即可。在这一步中,正确命名文件和文件夹尤为重要,这与上一步不同,上一步中命名并没有太大影响。 创建XML文件“About.xml”并制作预览图。
您的预览图应尺寸较小,格式为PNG,且文件名必须为“Preview.png”,否则将无法显示。为何要将其做得小一些?因为您的模组或翻译文件夹的总大小存在限制。如果您创建4K分辨率的图片,可能会超出限制,导致无法上传模组。 示例预览图(720 x 405):
编辑“About.xml”
现在将对每一行进行解释。 <?xml version="1.0" encoding="utf-8"?>——这是XML声明,用于指定XML版本(1.0)和字符编码类型(UTF-8)。它是文件正确处理所必需的。 <ModMetaData>——根元素,包含关于模组的所有元信息。所有其他元素都位于其内部。 <name>+medical supplies Ru</name>——模组名称,将显示在模组列表中。此处指定了我的模组“+medical supplies”的翻译名称。 <author>g15051978</author>——模组或翻译的作者。可以是您的姓名或昵称。 <packageId>g15051978.medical.supplies.ru</packageId>——模组包的唯一标识符。它必须是唯一的,并且符合标准格式:作者名(通常为小写),然后是模组名,用点分隔。此标识符对于加载和兼容性非常重要。<supportedVersions> — 指定模组兼容的《环世界》游戏版本。 <li>1.4</li> — 支持1.4版本。 <li>1.5</li> — 支持1.5版本。每个版本需在单独行中使用<li>元素进行指定。 <url></url> — 指向模组或翻译页面的链接,可在此处下载或查看更多信息。 <loadAfter> — 该部分指定当前模组应在其他模组之后加载。 <li>boeing.medical.supplies</li> — 原始模组包的标识符,该模组必须在此翻译之前加载。请确保此packageId与原始版本完全一致。 <description>模组俄语翻译</description> — 模组描述。 </ModMetaData> — 根元素的结束标签。它结束了About.xml文件的结构。 进入《环世界》,然后进入模组,找到翻译
点击“高级设置...”,然后点击“上传至Steam创意工坊”
勾选“标记为翻译”。然后点击“确认”
稍等几秒钟,然后点击“是”
您是作者吗? 接下来就是魔法时刻了。我们会跳转到我们的翻译页面。
您需要稍等片刻,待我们的作品完成审核与批准。您可以通过刷新页面来查看审核状态:若页面出现橙色标记并提示“作品正在审核中”,则表示审核仍在进行;当橙色标记消失时,说明审核已完成。如果作品未通过审核,Steam会向您发送通知并说明具体原因。 以下是成果链接。无需下载,因为俄语翻译已内置在模组中。 结束 恭喜!现在您无需使用任何程序即可翻译任何模组,并能略微了解游戏的工作原理。程序确实能加速和简化开发过程,但它们无法让人理解机制本身。当然,每个人都能在没有特殊技能的情况下翻译模组是很棒的,但与此同时,我们也失去了一些重要且有趣的东西。想必在童年时期,你一定好奇过玩具的构造,会把它拆开一探究竟。那感觉很刺激,对吧?这里也是一样——你将深入了解游戏的内部运作机制。这就像是探索一个新世界,或是玩《深海迷航》时的体验。希望你明白我在说什么。没错,有时候可能会觉得枯燥,但这仍然非常有趣。感谢阅读我的指南。你一定能成功! 致谢




本指南将教你如何在任何游戏、任何游戏模式、任何地图中获胜。相信我,这绝对是万无一失的。 那么如何获胜呢? 步骤1:放置德鲁伊 步骤2:将其升级为2/5/0 步骤3:放置更多德鲁伊 步骤4:获胜



I, for one, am continually frustrated by peoples' total lack of understanding game dynamics, even on Substantial difficulty, where you'd figure people know what they're doing. But no, people continue to make silly mistakes. Either that or they're selfish, knowingly or unknowingly. Here's a few pointers to be a better teammate on Operations. 1. Thou shalt have a good team composition This one's simple. The best teams in Operations have a balance of good classes. In general terms, the six classes can be categorised like so: Versatile classes: Tactical and Vanguard. Both are capable of decent shooting and melee, and aren't really caught off guard in any given situation. Shooting classes: Heavy and Sniper. Very good shooting, but don't really want to be parrying or dodging. The more time they spend defending themselves in melee, the less time they're spending shooting. Melee classes: Assault and Bulwark. Good at fighting, but cry as soon as a pair of Zoanthropes or, Emperor forbid, a Neurothrope shows up, due to a lack of shooting. If your team already has an abundance of close combat fighters, go for a shooty class to give them some fire support. Alternatively, if your team has lots of shooting, go for a fighty class to tie up enemies in melee. 2. Thou shalt not rush. Thou shall exercise patience and thoroughness. If you want to survive, you'll want supplies. If you want supplies, you'll have to look around a bit. Basically, don't run off! Yes, I'm looking at you Bulwark who think's he's the Emperor's gift to humanity and runs into groups of Warriors, leaving his diligent teammates in the dust and dying immediately. Check the side areas constantly. You'll often find ammo and armour boosts, sometimes a much needed medkit. In specific locations, you can even find Guardian Relics and Geneseeds. Even better, you could even find Armoury Data, which is the reason you're playing higher difficulties, remember? You gain nothing for completing a mission quickly. Be patient and search the area top to bottom. 3. Thou shalt not steal thine teammates' executions. Executions are vital for surviving, as they not only restore armour, but also contested health! In Space Marine 2, when you take damage, your health doesn't just vanish. It becomes contested. Contested health can be recovered by inflicting damage, performing gun finishers or, most effectively, performing executions. Your teammates will greatly appreciate if you do not steal their executions after they've finished fighting a Warrior or, especially, an Extremis enemy such as a Ravener or Lictor. Your wounded teammates will appreciate it even more if you're able to put enemies into an execution state for them! That's your job Sniper. Don't waste Las-Fusil ammo on stunned enemies. Put them in the red and let your teammates execute them for health restoration. An added bonus of executions is that they can be performed from further away than you'd think, and from the moment you press the 'E' key to the moment you finish the execution, you are completely immune to damage! This can give you a valuable breather to take in your surroundings, or perform such cheeky feats as walking through Barbed Strangler wires without suffering any damage! As a side note, learn to identify when a teammate is executing an enemy, so you don't waste attacks on an enemy that is, functionally, already dead. 4. Thou shalt reserve Medicae Stimulants for thine Geneseed carrier. Geneseeds are great. They are an item that, when picked up and carried to the end of the mission, provide a hefty boost to EXP gained. Sounds great, right? There's a downside. Two actually. Firstly, they occupy the same slot as the ever-so-valuable Guardian Relic, meaning no self-revives. On top of that, if the carrier is incapacitated at all, the Geneseed, and thus the EXP bonus, is lost! The solution is simple. Unless you're in dire straights yourself, reserve any found medpacks for your Geneseed carrier. On the topic of Geneseeds, choose carefully whether or not you are worthy of such a duty. Classes that spend more time near the enemy, such as Assaults and Bulwarks, should defer such a duty to their more reserved comrades, as being in the action more puts them at greater risk of being incapacitated. Likewise, classes with an easily exploitable weakness, such as Snipers, should be careful as well. In my experience, Tacticals and Heavies tend to be the best carriers, as Tacticals have no real weakness, and Heavies stand further away from the action, but not so far away that they can become isolated. On a final note, tell your teammates when you pick up a Geneseed! 5. Thou shalt reserve thine Krak Grenades for thine melee fighters. Zoanthropes suck, don't they? They come in pairs and shield each other. And they fly as well, rendering them immune to melee attacks. However, Zoanthropes, and Neurothropes in fact, weep tears of xenos misery when Krak Grenades are employed against them. They weep even more when an Assault or Bulwark, normally more vulnerable to such despicable xenos sorcery (read: flight) employ such weapons in a surprise turning of the tables! Such teammates will greatly appreciate it if you were to save such ordnance for their use, as it helps cover their main weakness. 6. Thou shalt defer thine duties to less experienced teammates when appropriate. This one's for all of you level 20+ Bulwarks hiding like the cowards you are in minimum difficulty. You know who you are. If you're playing on a difficulty lower than appropriate for your level, and you have an alternative class available, make space for your less experienced teammates. Do not "main" classes. Spread your game time around so that you have an alternative class to play, and so you can be the Black Templar Initiate to your Black Templar Neophyte, and teach them the ropes of their class. 7. Thou shalt not obstruct thine teammates' firing lanes. This is one that I've had happen a lot recently while using the Heavy Plasma Incinerator, and you'd think it'd be common sense. Ammunition is precious, and you should not waste what The Emperor provides. Unfortunately, the only two things better at absorbing shots than your enemies are your allies! High ammo weapons, like the automatic Bolt Rifles, aren't so bothered by this, but certain weapons with low ammo but high power, like the previously mentioned Heavy Plasma Incinerator, will really want every shot to count. So please, if you see a teammate lining up a sniper rifle shot, or charging up a huge explosive blast, show diligence and basic spacial awareness and not obstruct them. If you need to get to grips with the enemy, it's easy enough to run in just off to the side of their firing lane. 8. Thou shalt concentrate thine energy on defeating thine enemy champions. As of recent patches, Terminus encounters (Carnifexes, Neurothropes and Helbrutes) have been made compulsory. Whereas before you could flee like a traitor from such threats, now you must stand and fight them like true sons of the Emperor. If you attempt to flee like the coward you are, you will be given a new objective: "eliminate the threat" that you must accomplish before moving on. That means, when a Terminus enemy rears its foul head, you must stand together as a team and defeat it. Sometimes this means delegating one player, often a mobile class such as an Assault or Vanguard, to deal with outlying threats before rejoining the main effort to defeat the boss. Fortunately, Terminus enemies are no match for organised teams. A Tactical with an upgraded Auspex can dramatically increase the damage taken by a Terminus enemy, and can quite easily solo them with the Grenade Launcher. Assaults are excellent against Carnifexes, as their improved dodges allow them to get multiple consecutive gun shots off while avoiding their charges. Vanguards are arguably the least useful class against Terminus enemies, but make excellent flankers, dealing with other enemies that might disrupt the main fight, such as Venom Cannon Warriors. Bulwarks can provide their team with healing once the enemy is defeated. Little known fact: when a Terminus enemy dies, any contested health will be restored. This means, with a little coordination, a Bulwark can heal the entire team back to full. Alternatively, they can drop the banner, go for the execution and leave their teammates to use stims, achieving the same effect but also recovering any mortal wounds either teammate might have. Snipers are the bane of Neurothropes, as they can stay beyond its effective range and make good use of its enormous head hitbox, dealing incredible damage when boosted by an Auspex or cloak. Heavies can provide covering fire, so long as they are using a suitable weapon (sorry Multi-Melta heavies). Afternote Since Space Marine 2 has only recently been released, game knowledge is still being learned. As such, any suggestions for additional commandments is always appreciated, as there are many players whose experience, especially with higher difficulties and higher class levels, far outstretches my own.

— 如何游玩《环世界》多人模式 — 寻找殖民地建设伙伴 — 多人模式模组的主要翻译信息 基本信息 所有希望通过Steam上的“Multiplayer Mod”模组与朋友合作游玩《环世界》的玩家,可以在本指南的评论区或为此新创建的“Rimworld RU”群组中进行约定。 若要通过Steam游玩,需将你想一起玩的人添加为Steam好友。你将与朋友同时管理一个殖民地。目前仅开放一种模式。 合作模式游玩指南 如何创建服务器? 前往Steam上的该模组页面并点击订阅。
接下来进入游戏的“模组”(MODS)部分,建议关闭所有模组,仅保留“核心”(Core)和“多人游戏”(Multiplayer)模组启用。
创建殖民地、选择定居者等,就像你在单人游戏中通常所做的那样。
游戏开始时打开菜单并点击 - 主持服务器
在弹出的窗口中,你可以为服务器命名并根据自己的需求进行设置。在撰写本指南时,建议将玩家数量设置为不超过8人。如果你通过Steam正版游戏进行游玩,请按照截图所示进行设置。
若您需要保存游戏,请点击“保存回放”按钮。
要为房主加载已保存的游戏,需在菜单中点击“多人游戏”按钮。
接下来在菜单中选择“主机”,然后在“多人游戏”部分会显示您保存的游戏。
如何加入游戏? 要加入游戏,您需要: 1. 在Steam中添加您想一起玩的人为好友。 2. 然后,您的好友需要进入游戏,并在菜单中点击“多人游戏(Multiplayer)”按钮。 3. 选择“Steam”选项,在该选项下将显示所有已创建服务器以及您当前正在游戏中的Steam好友,选择您需要的服务器并点击“加入”。
Приятной игры! Как играть в мультиплеер с модами? Это пока что довольно геморное занятие так как для лучшей и стабильной игры вам придется сделать кучу всего но если вас это не пугает то читайте далее Для того что бы играть с модами в многопользовательской игре нужно - Самое важное это Убедиться что все ваши включенные моды помечены как совместимые с многопользовательским модом в противном случае у вас будет очень сильная рассинхронизация в вашей игре которая в итоге может привести к вылету из игры Проверить совместимость модов можно в самой игре в главном меню открыв Моды --> Совместимость с Multiplayer Или в этой гугл форме - ПРОВЕРКА МОДОВ [docs.google.com] Главное что вам нужно знать что бы быстро определять совместимость модов это расшифровка цифр обозначающих ту или иную степень совместимости ниже я перечислю переведенную информацию об этих цифрах и что они означают: 0 = Неизвестно 1 = Не работает 2 = Работает, но имеет много основных функций, которые не работают 3 = Работает, но имеет некоторые незначительные особенности, которые не работают 4 = Все работает XML = Все работает Все моды не помеченные 4 или XML так или иначе приведут вашу сессию к рассинхронизации Далее находите свой мод и сверяетесь Для тех кто не знал быстрый поиск работает при нажатии клавиш CTRL + F В меню модов У ВАС и У ВСЕХ ИГРАЮЩИХ С ВАМИ ДРУЗЕЙ включенные моды должны СТОЯТЬ В ОДИНАКОВОМ ПОРЯДКЕ Так же у всех должны быть одинаковые настройки всех включенных модов иначе могут быть некоторые проблемы с синхронизацией Для лучшей надежности хост может скинуть всем свою папку с настройками всех модовРасположение папки конфигурации на Windows, Mac и Linux: - Она находится по адресу: "C: Пользователи %Имя пользователя% AppData LocalLow Ludeon Studios RimWorld от Ludeon Studios Config" Примечание - После того как хост скинет папку Config остальным у тех кому он скинул может поменяться их ник в мультиплеере на ник хоста. Это легко исправить - просто зайдите в настройки мода Multiplayer и смените ник хоста на какой вам угодно. Так же существует мод который делает совместимыми с мультиплеером другие моды из списка на странице данного мода - Multiplayer Compatibility он так же может помочь если вы играете с модами. Обязательно ставьте его если вы используете какие либо моды из списка приведенного на его странице. Примечание - После его установки и активации в меню совместимости у модов из его списка все еще будут отображаться цифры ниже 4 это нормально и не стоит беспокоится. Все моды из того списка совместимы с мультиплеером. Приятной игры! Часто задаваемые вопросы: Какие порты должны быть перенаправлены на случай, если я хочу использовать прямое соединение? 30502 через UDP На какой версии игры я могу играть в мультиплеер? На данный момент поддерживаются версии - 1.1, 1.2, 1.3, 1.4 и 1.5 Что такое Arbiter? Арбитр - это отдельный пример запуска Rimworld, который помогает с разрешением рассинхронизации. (Арбитра можно отключить если вы чувствуете что у вас тормозит игра) Можно ли играть с модами Играть с модами возможно но для этого вам потребуется сделать некоторые действия описанные в этом руководстве Могу ли я изменить свое игровое имя пользователя? Да, ваше имя может быть изменено в опциях мода в игре. Работает ли мод между разными операционными системами? Да, но есть некоторые дополнительные моды, которые в настоящее время не будут работать между окнами и Mac / Linux Что означает «сохранить реплей»? Многопользовательское сохранение называется реплеем Если у моего друга пиратка а у меня лицензия то сможем ли мы играть с ним в мультиплеере? Нет Может ли каждый игрок иметь свою отдельную фракцию или колонию? Да может но для комфортной игры лучше включить в опциях сессии Async time. Для того что бы у вас была не общая пауза на всех.




这是一份关于中后期快速赚钱的指南。所需物品: - 任意消音枪 - 任意开锁器 - 黑客工具 - (可选)护甲 - (可选)技能 操作步骤: 1. 进入豪宅地图,获取枪支,找到装有开锁器和黑客装置的包。 2. 若速度足够快,可直接冲入并关闭警报开关。 3. 从后门进入,用开锁器打开门锁。 4. 若速度足够快,可直接跑下楼梯;否则需等待守卫视线移开。 5. 破解安全门,用消音武器击杀守卫,然后关闭电话。 6. 确认摄像头已离线后,前往金库并破解。 7. 穿过激光,启动电梯。 8. 站在汽车上,等待其升起并打开车库门。 9. 返回面包车,从皮卡车处获取挂钩并勾住汽车。存活至汽车被装上皮卡车并离开
如果你贪得无厌 在等待车辆被拖上卡车时,你可以赚取一些额外的钱。 要是你足够贪心,可以跑回金库,从后面角落的桌子上拿起瓶子。 把它带回面包车就行(小心地图上四处巡逻的特警单位)。 在面包车到达前,你应该有足够的时间完成这件事。 恭喜你额外获得约500美元。 恭喜你变得富有。

The official guide on how to create mods for Forts to add new devices, weapons, materials, change balance, visuals and effects. Learning Lua Forts uses Lua to configure the game. By writing your own Lua scripts you can change and add to Forts. Lua is a powerful and easy to learn scripting language. You can pick up a lot by reading the scripts included in Forts, but to get a more structured introduction I recommend the tutorials found at lua-users: http://lua-users.org/wiki/TutorialDirectory The first 8 tutorials are enough to do everything needed to mod Forts effectively. You can use any text editor to edit Lua scripts, such as Notepad, which comes with Windows. Something more sophisticated such as Notepad++[notepad-plus-plus.org] or Sublime Text[www.sublimetext.com] will make life easier, however. To support localisation into some non-English languages the editor will need to support UTF-16 Unicode encoding. Game configuration Forts' data can be browsed as ordinary files. You can find it by right clicking on Forts in Steam, then properties, then local files. You will see the data directory there. The data is divided into subdirectories according to their purpose. For example there is a directory for devices, weapons and materials. You can browse these folders to learn about how the game is set up. The game looks for specific plain text Lua files in order to get the parameters and asset filenames it needs to load and run the game. The scripts most important to modding include: db/constants.lua db/rules.lua materials/building_materials.lua devices/device_list.lua weapons/weapons_list.lua weapons/projectile_list.luaDuring the loading of a battle, the game will read these files and look for certain tables and variables within them. If you open weapon_list.lua, you'll see a table called Weapons. The game looks through this table to find the weapons to be used for this battle, what they are called internally (SaveName), how much they cost, build duration, etc. Each weapon entry has a value called FileName. This points to a Lua file with detailed data about the appearance and behavior of the weapon. It sets the effects used while firing, reloading, being destroyed etc. It also has a value called Projectile. This value references the SaveName of an entry in the Projectiles table of the projectile_list.lua file, and so specifies which projectile to create when the weapon fires. Devices are similar to weapons but don't need parameters relating to firing. Materials have all of their configuration data in building_materials.lua, and their appearance is in the Sprites table, including damage levels. You can browse this material, device, weapon and projectile data to see what parameters, texture files and effects are needed to make up the game. There is quite a lot, but everything is named well and you can ask us if something doesn't make sense. Understanding the game configuration is essential for modding the game correctly. Mods replicate part of the file structure In the data directory you'll see a folder called 'mods'. If you browse that you'll see subdirectories. Each of these is a mod. If you browse some of these mods (such as weapon_pack) you'll see some folders and Lua files that are the same as in the base data directory. The way mods work in Forts is that the base Lua file is loaded first, and then for each of the mods that are active, the game looks for the same Lua file in the mod's directory and loads that on top of what's been loaded already. So each mod can change the variables and tables of the base game. They can also change images, projectiles, and effects. They can add completely new items, disable existing items, or remove them altogether. If you are changing a variable it is often better to multiply it by a factor, or add or subtract, instead of setting an absolute value. We make balancing changes from time to time, and an absolute change may be off the mark afterwards. Warning: never make changes to the base game files or included mod folders. Doing so will change your experience, make the game unstable, and cause desyncs in multiplayer and when watching older replays. If you need to revert a change you can right click on Forts in Steam, then properties, then local files. Select Verify Integrity of Game Files. A simple mod: changing a value Let's take a simple example of setting gravity to zero. The value that controls gravity is in db/constants.lua, in the table called Physics, and the variable is Gravity. By default this is 981, the value of acceleration under Earth's gravity in game units per second per second. The first step is to create a folder under mods, let's call it zerog. Then we create a subdirectory called db, and within that a blank text file called constants.lua. It should look like the original file containing the variable we want to mod, but under our own mod directory instead. Now we can't use the same format in the base constants.lua file, because that would wipe all the other values in the Physics table. Instead we can reference a value within the table like so: (in file mods/zerog/db/constants.lua) Physics.Gravity = 0 You also need to create a mod.lua file in mods/zerog and add the following lines: Selectable = true Category = "Physics" Run Forts and go to Sandbox. Start a map and go to the Player tab. You should see under the Physics category the name of the mod folder. Select that, start the Sandbox and watch things float about. Congratulations! You've made your first mod. As you know we've already made a zero gravity mod, and the mod name is zerogravity. We found that setting the gravity to zero wasn't the only change needed. We also reduced the drag so ships could move faster and the maximum angle at which a strut will accept a device, and changed a few other things. You might also find that making a mod requires more changes than you anticipated. The order of application Because there can be any number of mods active, the data being modified is not necessarily what is in the base game. The base file is loaded, then the first mod, then the next mod, and so on. Each mod is applied to the changes made by the mods before it. The order that mods are applied in is influenced by the optional Priority value in the mod.lua file. Lower values are applied first. Higher values are applied last, and so tend to have the final say. The expected range is 1 to 10, and the default is 5. If two mods have the same priority the order is alphabetical according to the mod name (or Workshop published id). (in mod.lua) -- apply this mod late Priority = 10 If a mod should make a change to every item, it should have a high value for Priority so it is applied last. The fast-build mod, for example, has a building_material.lua file which iterates the material items, including any that came from mods applied before it, and adjusts their build and scrap time like so: for k,v in ipairs(Materials) do v.BuildTime = v.BuildTime/4 v.ScrapTime = v.ScrapTime/2 end Also, don't be dependent on the data being untouched. If you want your new weapon to appear in a particular location you need to look for the position of the weapon you want it to appear after and insert it after that. Examples can be found in the weapon_pack mod. The Rocket is positioned after the EMP Rocket: table.insert(Weapons, IndexOfWeapon("rocketemp") + 1, { -- rocket data } Post Processing: RegisterApplyMod You can schedule a function to be called once all mods have been applied. It allows you to do processing, calculations and call functions you've written yourself which may not be possible during normal script loading call. This helps you apply changes to items added after your mod - regardless of priority. This works in practically all configuration scripts. In a specific device configuration script, or device.lua, to double production, for example: -- simple form using an anonymous function RegisterApplyMod(function() EnergyProductionRate = 2*EnergyProductionRate MetalProductionRate = 2*MetalProductionRate end) Commanders use this system to apply changes to modded devices, weapons, materials, projectiles, and more. For example, Architect reduces build times in weapon_list.lua with a named function, like so: -- name the function and register that CommanderApplyModBase = function() for k, device in ipairs(Weapons) do if active and device.Prerequisite ~= "upgrade" then device.BuildTimeComplete = 0.25*device.BuildTimeComplete end end end RegisterApplyMod(CommanderApplyModBase) All commander 'ApplyMod' functions have the same name. If you are modding a commander and want to prevent this from functioning, you can remove it using the DeregisterApplyMod function: DeregisterApplyMod(CommanderApplyModBase) You are free to name your own functions so that other mods can remove yours, just keep in mind that earlier mods may have defined such a function too. Make sure you give them a unique name, or you could overwrite a previous mod's value. NOTE: The older ApplyMod system is deprecated. It is still functional but we don't recommend using it, and we may remove it at some point in the future. Adding a device with included textures We created the Large Sandbags mod as a comprehensive example of how to add a new device to Forts. Once you are subscribed, navigate to your Steam library and then steamapps workshop content 410900 1293804859. This is an example of where a Workshop mod ends up after you upload it and someone subscribes to it. The original folder name is changed to a number, but everything else is the same. The change of location is why prefixing filenames with the path variable is so important - more below. The critical file in this mod is devices/device_list.lua. The first part of this script creates new sprites based on the included textures, found in ui/textures/HUD. The DetailSprite and ButtonSprite helper functions are defined in data/ui/uihelper.lua, and the Sprites table is read by the game to create any sprites defined by the configuration script. The 'path' variable is set by the game to the relative or absolute path of the mod (in the case of a subscribed mod), allowing it to reference new texture assets stored in the mod's directory. You don't need to understand exactly how this works, but if you keep your texture files in the same location and update the names it should work. table.insert(Sprites, DetailSprite("hud-detail-sandbags-large", "HUD-Details-SandBagsLarge", path)) table.insert(Sprites, ButtonSprite("hud-sandbags-large-icon", "HUD/HUD-SandbagsLarge", nil, ButtonSpriteBottom, nil, nil, path)) Moving down a bit, you'll see where the new device is added to the Devices table. table.insert(Devices, IndexOfDevice("sandbags") + 1, { SaveName = "sandbags_large", FileName = path .. "/devices/sandbags_large.lua", Icon = "hud-sandbags-large-icon", Detail = "hud-detail-sandbags-large", Prerequisite = "upgrade", BuildTimeIntermediate = 0, BuildTimeComplete = 30, ScrapPeriod = 8, MetalCost = 20, EnergyCost = 800, MetalRepairCost = 20, EnergyRepairCost = 800, MetalReclaimMin = 0, MetalReclaimMax = 0, EnergyReclaimMin = 0, EnergyReclaimMax = 0, MaxUpAngle = StandardMaxUpAngle, BuildOnGroundOnly = false, SelectEffect = "ui/hud/devices/ui_devices", }) The IndexOfDevice function allows us to put the new device in a sensible position (after the original sandbag). The third parameter is the new item we're adding. We define the SaveName, the FileName which sets the detailed configuration of the device, the Icon and Detail HUD sprites, which we defined at the top, the prerequisite tech structure - the Upgrade Centre, and several other basic parameters (build time, cost and reclaim settings). You can open devices/sandbags_large.lua to see what detailed parameters are set. This is where you would make the device behave different to other devices. You can look at the devices included with the game and the weapon_pack mod to see what variables to change and what values would be appropriate. It's a good idea to play around with the values to see what feels good, rather than just using the first values that occur to you. Testing with friends helps to get feedback. In the middle of the file you'll see a new Sprites table, which sets the single-frame sprite of the sandbag to the included texture /devices/SandbagsLarge.tga. Note the use of the path variable again. The following forward slash is important as it's not included in the path variable. Further down you'll see the Root table, which configures how multiple sprites fit together to make a single device. This can be a complex set of nested tables for a weapon, as there are multiple parts and a pivot where the gun rotates. This structure specifies where projectiles and beams are emitted from by creating a "Hardpoint0" child node (with no Sprite value set). If you want to create a new weapon it's best to copy an existing one and experiment with Root until you understand how it works. The Angle, Pivot and PivotOffset values determine how child nodes are positioned relative to the parent. UserData is set to the percentage of construction at which the node will appear (or disappear on scrap). The other gameplay related change the Large Sandbags mod does is reduce the damage the 20mm cannon does to it. You'll find this in mods weapon_pack weapons projectile_list.lua. This is a mod of a mod (or a nested mod). It's changing the way the weapon_pack works because the damage multiplier versus a device is associated with the projectile. It is set like this: cannon20mm = FindProjectile("cannon20mm") if cannon20mm then table.insert(cannon20mm.DamageMultiplier, { SaveName = "sandbags_large", Direct = 0.2, Splash = 0.2 }) end Device Upgrades Devices (and weapons) can have one or more upgrades, with optional prerequisites (see the Prerequisites section below). This is achieved by adding an Upgrades table to the device in device_list.lua (or weapon_list.lua for weapons). The entries in this table set the SaveName and cost of the upgrade, and can also set a button sprite for the context menu. Although the detail sprite of the device will be shown on rollover, when there are multiple upgrades custom buttons are recommended so the player can tell them apart easily. The ButtonSprite helper function can be used to make the button sprite so it has disabled, rollover and pressed states. The built-in textures with path ui/textures/context/HUD-Buttons-Blank-*.tga can be copied and edited to create new buttons. Upgrades can be disabled at start by setting Enabled = false, and later enabled by mission or mod script by using the EnableDeviceUpgrade or EnableWeaponUpgrade functions. If you are modding an existing device then make sure to insert your upgrades rather than setting the table from scratch, to prevent the loss of the existing upgrades, or those added by other mods. -- this will look for the following textures to make the sprite (path is the root of your mod): -- path .. "/ui/textures/context/HUD-Buttons-Mortar2-A.tga" -- active (waiting for input) -- path .. "/ui/textures/context/HUD-Buttons-Mortar2-D.tga" -- disabled (unable to be pressed) -- path .. "/ui/textures/context/HUD-Buttons-Mortar2-R.tga" -- rollover -- path .. "/ui/textures/context/HUD-Buttons-Mortar2-S.tga" -- selected table.insert(Sprites, ButtonSprite("hud-context-upgrade-mortar2", "context/HUD-Buttons-Mortar2", nil, nil, nil, nil, path)) -- located within a device table of device_list.lua or weapon_list.lua Upgrades = { { Enabled = true, SaveName = "minigun", MetalCost = 200, EnergyCost = 400, }, { Enabled = true, SaveName = "mortar2", MetalCost = 100, EnergyCost = 200, Button = "hud-context-upgrade-mortar2", }, }, Along with the High Seas update, a new upgrade variable was added: TransferReloadProgress. When this is set to true, the upgraded weapon retains the reload state of the original. This was used for the multi-barrelled Deck Gun weapons when switching between spread and focus fire. Prerequisites By default materials and devices can be built if the player has enough resources. It's possible, however, to add a requirement to build a certain device or a combination of devices first. This is how the 'tech' buildings operate to restrict construction. Both materials and devices (which includes weapons) have the same syntax for the Prerequisites variable. If it is left as nil, then it can always be built. If assigned to a string then at least one device with that SaveName must be built before the material or device can be constructed: Prerequisite = "workshop", There is an obsolete method of setting an alternative required device, but we recommend you use the more flexible syntax below. In the following example the item can be built if the workshop or the armoury has been built. Prerequisite = "workshop", PrerequisiteAlt = "armoury", You can also set up a list of combinations of device SaveNames for complex requirements. If any one of the combinations is satisfied then the item can be built. In the following example, the item can be built if the workshop and the upgrade centre is built, or the factory alone is built. This list of combinations can be as long as you like. Prerequisite = { { "workshop", "upgrade" }, { "factory" } }, Device upgrades can have their own prerequisites set in the same way. If the upgrade's Prerequisite variable is not set then it defaults to the prerequisites of the target device of the upgrade. Upgrades = { { Enabled = true, SaveName = "mortar2", Prerequisite = { { "upgrade" }, { "munitions" } }, MetalCost = 50, EnergyCost = 800, Button = "hud-context-mortar2", -- if set this will customise the context menu }, }, Beam Configuration Beams operate over a period of time, set by the BeamDuration variable of the weapon, and so have configuration options that projectile weapons don't. The simplest way of setting up their width and damage is with the ProjectileThickness and ProjectileDamage variables in the weapons/projectile_list.lua item, which remain constant. ProjectileDamage for beams means 'hitpoints per second'. In addition, beams can have time functions for thickness and damage. This is to allow more dramatic wind up, wind down and oscillation. To achieve this you can implement the BeamThickness and BeamDamage functions in your weapon configuration script. They take a time value (relative to the end of FireDelay), and return a value which represents the instantaneous thickness and damage (still in hitpoints per second) of the beam. Within the weapon configuration script, the constant variables and the result of the functions can both be modified with BeamThicknessMultiplier and BeamDamageMultiplier. They default to 1. Here is part of the Plasma Laser weapon configuration script as an example. To allow more intuitive tuning of the beam we organise the data in a time-keyed table, BeamTable, and then use InterpolateTable to calculate intermediate values. dofile("scripts/interpolate.lua") -- first column is time keypoint -- second coloumn is thickness at that keypoint -- third column is damage at that keypoint BeamTable = { { 0,1,0, }, { 0.25, 3, 0, }, { 0.5,30,1000, }, { 1,30,1000, }, { 1.5,0,0, }, } function BeamThickness(t) return InterpolateTable(BeamTable, t, 2) end function BeamDamage(t) return InterpolateTable(BeamTable, t, 3) end With the High Seas DLC update in March 2022, the ability to specify these functions as part of the projectile item was introduced. This was necessary because the Ammo system allowed a weapon to produce multiple beams. Also added was a new sprite which tracks the collision end point of the beam, described below. The Orbital Sweep projectile gives an example: table.insert(Projectiles, { SaveName = "ol_beam_sweep", ProjectileType = "beam", ProjectileSprite = path .. "/weapons/media/ol_beam.tga", -- other details omitted BeamThickness = function(t) return InterpolateTable(BeamTableOrbitalSweep, t, 2) end, BeamDamage = function(t) return InterpolateTable(BeamTableOrbitalSweep, t, 3) end, BeamCollisionThickness = function(t) return InterpolateTable(BeamTableOrbitalSweep, t, 4) end, }) -- first column is time keypoint -- second coloumn is thickness -- third column is damage -- fourth column is collision sprite thickness BeamTableOrbitalSweep = { { 0,1,0,0,}, { 1,10, 0,0.25,}, { 1.25,100,1500,1,}, { 3.25,100,1500,1,}, { 4.25,0,0,0,}, } WARNING: name your beam table something unique to your mod. Using the same table name will overwrite previous values and change the behaviour of other beams. Beam Layers and Collision SpritePrior to High Seas, beams could only have one visual layer. Now it's possible to have multiple layers, each with their own thickness functions, scroll rate, tile rate, and additive value. They could also only have an effect produced at collision points. We needed more control of this, so we added an optional sprite with its own thickness function. It will exactly track the endpoint of the beam, even if it moves rapidly. The sprites for each beam layer should specify "repeatS = true," to make the texture tile along the length of the beam. The Orbital Sweep beam is an example: table.insert(Sprites, { Name = "ol_beam", States = { Normal = { Frames = { { texture = path .. "/weapons/media/ol_beam.tga" }, repeatS = true, } }, }, }) -- additional beam layer sprite definitions omitted for brevity table.insert(Projectiles, { SaveName = "ol_beam_sweep", ProjectileType = "beam", -- other details omitted ProjectileSprite = path .. "/weapons/media/ol_beam.tga", Beam = { Sprites = { { Sprite = "ol_beam", ThicknessFunction = "BeamThickness", ScrollRate = -2, TileRate = 400*3, }, { Sprite = "ol_beam4", ThicknessFunction = "BeamThickness", ScrollRate = -2, TileRate = 400*3, Additive = true, }, { Sprite = "ol_beam6", ThicknessFunction = "BeamThickness", ScrollRate = -3, TileRate = 800*3, Additive = true, }, { Sprite = "ol_beam2", ThicknessFunction = "BeamThickness", ScrollRate = -6, TileRate = 800*3, Additive = true, }, { Sprite = "ol_beam5", ThicknessFunction = "BeamThickness", ScrollRate = -7, TileRate = 600*3, Additive = true, }, }, CollisionSprite = { Sprite = "ol_collision", ThicknessFunction = "BeamCollisionThickness", Scale = 0.5, Additive = true, }, }, }) Maximum TravelThe High Seas update also introduced the concept of beams having a maximum distance of travel, which continues through reflections and when passing portals (which add no distance themselves). The beam will stop abruptly after this distance has been reached, like a light saber. It can be adjusted by setting the BeamMaxTravel variable of the projectile item. It defaults to a large number, so will not affect legacy beams. table.insert(Projectiles, { SaveName = "mylightsaber", ProjectileType = "beam", -- other details omitted BeamMaxTravel = 1000, }) Material Conversions Right clicking on a strut will bring up a context menu, including a number of buttons with material icons. These buttons can be used to convert the strut into a different material. By default this list of materials is set to the contents of the DefaultConversions table in the base building_materials.lua file: DefaultConversions = { "bracing", "backbracing", "armour", "door", "shield" } This list can be modified like anything, but it's also possible to customise it for a specific material by setting the Conversions table. It's best to merge any new materials with the DefaultConversions table, to keep the changes introduced by other mods. To allow a material to be convertible to a portal in the context menu, for example: -- in the material Conversions = MergeLists(DefaultConversions, { "portal", }), In order for this to work the material to be included must have the Context variable set to the name of a valid sprite. The ButtonSprite function from ui/uihelper.lua must be provided with a path in order for it to find the textures within the mod's ui/textures folder: Sprites = { ButtonSprite("context-shield", "context/HUD-Buttons-Shield", nil, nil, nil, nil, path), } -- in the material Context = "context-shield", See the 'bracing' material in the base building_materials.lua file for an example. Adding effects and audio You can add custom effects to your mods such as explosions, muzzle flashes, and projectile trails. These can including new textures and sound effects, or instead use existing assets from the game. Reference these new effects from your other scripts using the file's name relative to your mod's 'path', for example in a device script: DestroyEffect = path .. "/effects/mygun_med_exp.lua" To do this make new .lua scripts in a folder called 'effects' in your mod. The game will scan this folder and pre-load the effects. Assets for your effects should be placed in the 'effects/media' folder, which are also pre-loaded. Effect scripts take the following general format, for example: -- how long the effect can last, even if component effects are still going LifeSpan = 3 -- optional triggering of an fmod sound event (usually based on an existing effect script) SoundEvent = "effects/mushroom_cloud.lua" -- list of (potentially animated) sprites. be careful of duplicate names. Sprites = { { Name = "mygun_medium_explosion", States = { Normal = { Frames = { -- the last frame is blank to prevent looping { texture = path .. "/effects/media/med_exp_01.tga" }, { texture = path .. "/effects/media/med_exp_02.tga" }, { texture = path .. "/effects/media/med_exp_03.tga" }, { texture = path .. "/effects/media/med_exp_03.tga", colour = { 1, 1, 1, 0 }, duration = 2 }, duration = 0.1, blendColour = false, blendCoordinates = false, }, }, }, }, } -- list of sub-effects that make up this effect Effects = { { Type = "sprite", PlayForEnemy = true, TimeToTrigger = 0, LocalPosition = { x = 0, y = 100, z = 0 }, LocalVelocity = { x = 0, y = 0, z = 0 }, Acceleration = { x = 0, y = 0, z = 0 }, Drag = 0.0, Sprite = "mygun_medium_explosion", -- defined above Additive = false, TimeToLive = 2, InitialSize = 1.4, ExpansionRate = 0, Angle = 0, AngleMaxDeviation = 0, AngularVelocity = 0, RandomAngularVelocityMagnitude = 0, Colour1 = { 255, 255, 255, 255 }, Colour2 = { 255, 255, 255, 255 }, }, }, The following effect types are available: spriteCreates a single textured quad that can move, rotate, scale and blend between two colours. See example above. soundMakes an audio effect based on a .wav or .mp3 file asset. This is not commoly used by the game itself because more control can be had using the Fmod event system. For user created mods it is fine, and allows new sound effect files to be added to the game. { Type = "sound", TimeToTrigger = 0.0, LocalPosition = { x = 0, y = 0, z = 0 }, Sound = path .. "/effects/media/med_exp.mp3", Volume = 0.6, }, sparksCreates a series of bursts made up of sprites with rules about how they are positioned, sized and rotated depending on the direction they are emitted. { Type = "sparks", PlayForEnemy = true, TimeToTrigger = 0.1, SparkCount = 12, SparksPerBurst = 12, BurstPeriod = 1, LocalPosition = { x = 0, y = 0 }, Texture = path .. "/effects/media/debris.tga", Gravity = 0981, -- particles are emitted according to this distribution pattern -- NormalDistribution is the alternative, which is bell shaped EvenDistribution = { -- minimum and maximum angle in degrees (e.g. -180, 45, 0) Min = -35, Max = 35, -- standard deviation at each iteration in degrees (zero spaces evenly) StdDev = 5, }, -- particles get properties interpolated from these keyframes -- depending on the angle at which it is emitted Keyframes = { { Angle = -35, RadialOffsetMin = 0, RadialOffsetMax = 20, ScaleMean = 0.5, ScaleStdDev = 0.25, SpeedStretch = 0, SpeedMean = 500, SpeedStdDev = 200, Drag = 1, RotationMean = 45, RotationStdDev = 180, RotationalSpeedMean = 10, RotationalSpeedStdDev = 5, AgeMean = 1, AgeStdDev = 0.5, AlphaKeys = { 0.1, 0.8 }, ScaleKeys = { 0.1, 1 }, }, { Angle = 35, RadialOffsetMin = 0, RadialOffsetMax = 20, ScaleMean = 0.5, ScaleStdDev = 0.25, SpeedStretch = 0, SpeedMean = 500, SpeedStdDev = 200, Drag = 1, RotationMean = -45, RotationStdDev = -180, RotationalSpeedMean = 10, RotationalSpeedStdDev = 5, AgeMean = 1, AgeStdDev = 0.5, AlphaKeys = { 0.1, 0.8 }, ScaleKeys = { 0.1, 1 }, }, }, }, trailCreates a textured streamer which follows the position of the effect. { Type = "trail", Texture = path .. "/media/bullet_trail.tga", LocalPosition = { x = 0, y = 0, z = 9.0 }, Width = 3, Length = 0.75, Keyframes = 100, KeyframePeriod = 0.05, RepeatRate = 0.001, ScrollRate = 0, FattenRate = 0, }, shakeMakes the camera move rapidly depending on how close it is to the effect. { Type = "shake", TimeToTrigger = 0, TimeToLive = 8, Magnitude = 28, }, There are many variables associated with each of these. Please use the Forts/data/mods/weapon_pack/effects folder as a basis to learn from. You can copy and edit the scripts to make your own. Localisation In Forts all languages are implemented as mods. You can inspect the base string tables in the Forts/data/mods/language-* folders to see what files are available for modding. In order to change or extend string tables for your mod you need to mod these language mods. Using the Large Sandbags mod as a reference again, you will see the following folder structure (with English expanded as an example): mods/ language-BrazilianPortuguese/ language-Chinese/ language-English/ devices/ strings.lua mods/ commander-bpo-scattershot/ strings.lua language-French/ language-German/ language-Hungarian/ language-Italian/ language-Japanese/ language-Korean/ language-Polish/ language-Portuguese/ language-Russian/ language-Spanish/ language-Turkish/ If you opened mods/language-English/devices/strings.lua, you will see: function Merge(t1, t2) for k, v in pairs(t2) do t1[k] = v end end Merge(Device, { sandbags_large = L"Large Sandbags", sandbags_largeTip2 = L"Heavy sandbags with greater hitpoints", sandbags_largeTip3 = L"Requires: Upgrade Centre", }) This shows how the strings describing the new device are merged into the sub-string table called Device. The string ids, like "sandbags_large", and "sandbags_largeTip2", are automatically generated from each device SaveName to look for the strings to show. If you are replacing an existing string, you can just overwrite it, as in the Scattershot commander string.lua example: Scattershot.ToolTipLine2 = L"Passive: sucky cannon with only splash damage." Scattershot.ToolTipLine3 = L"Active: try it out. " If a particular language is missing for a particular string id then it will be blank for tips, but in most cases it will appear as the string id. This makes it easier to find string ids that are missing translations. Moonshot Only Features A few features were introduced with the Moonshot DLC that are not available in the base game. If you wish to make use of these features then your mod becomes dependent on Moonshot, and can only be activated when the host of the game has it installed (which is always you in single player games). These mods are displayed with a blue Moonshot icon in the mod selection screen. When you make a Moonshot dependent mod, you must add a flag to your mod.lua file so the game can quickly identify it as such. You may get an error message if you try to publish a mod that depends on moonshot and does not have this flag: RequiresMoonshot = true The features and their associated keywords which trigger dependency are outlined below. Note that if these words are found anywhere in the appropriate file it will become dependent, even if it's out of place or in a comment. Supporting MoonshotIf you want to make use of Moonshot features when they're available, but still allow your mod to run without them working if Moonshot is not available, then use this flag instead: SupportsMoonshot = true The game will automatically set two variables, dlc1Var_Active and dlc1Var_Value. These are set to true and 1 if Moonshot is available, and false and 0 if it's not, respectively. You can use these to prevent the addition of weapons which don't make sense, for example. PortalThe keyword Portal in building_materials.lua triggers dependency. This allows a material to teleport projectiles and beams when two such struts are linked by the player. MaxBurstsThe keyword MaxBursts in a weapon script, or weapon_list.lua will trigger dependency. When used in a weapon script (e.g. machinegun.lua) the weapon will self destruct after firing that many times. This is used on the Moonshot only Buzzsaw weapon. RayDamageThe keyword RayDamage in the projectile_list.lua file will trigger dependency. This is used in combination with a few other variables to create damage in a straight line when a projectile collides with a strut. The buzzsaw projectile, for example: RayOffset = 0.1, RayLength = 50.1, RayDamage = 7.5, RayDamageLimit = 3000, RayIncendiaryRadius = 0, RayExcludeBackground = false, RayStopAtForeground = false, FieldRadiusThe keyword FieldRadius in the projectile_list.lua will trigger dependency. This is used in combination with a few other variables to create a field for various purposes. It is used to implement smoke and to attract projectiles to the magnabeam point of impact. For example, the smoke projectile uses it like so: FieldRadius = 200.0, FieldType = FIELD_DISRUPT_BUILDING | FIELD_BLOCK_BEAMS | FIELD_SCRAMBLE_GUIDANCE | FIELD_BLOCK_FIRING, FieldIntersectionNearest = true, FieldStrengthMax = 1.0, FieldStrengthFalloffPower = 1.0, MagneticModifierFriendly = 0.0, CollidesWithBeams = true, The options for FieldType are: FIELD_DISRUPT_BUILDING FIELD_MAGNETIC FIELD_BLOCK_BEAMS FIELD_SCRAMBLE_GUIDANCE FIELD_BLOCK_FIRING Dynamic Scripting By adding a script.lua file in their root folder, mods can have arbitrary Lua script executed based on events triggered by the game, including projectile impacts, destruction of devices and weapons, ownership changes and user input. There are also events for the initial load, physics frame, display frame, and restart. Functions can also be scheduled to execute at a specific time in the future. They behave identically to mission scripts, but are not tied to a specific map. In response to these events the mod script can perform a host of changes to the game state, create effects, or show controls on the screen. It can also track any state it wishes in the 'data' table, which will automatically be serialised for the purpose of replays and players joining a battle. The details of this dynamic mod scripting can be found at the Forts Scripting API Reference[www.earthworkgames.com] page, which is generated directly from the Forts source code with mark up to provide descriptions. Mod categories To make your mod easy to find on the Steam Workshop and in the game's mod selection screen, we recommend you put it into a category. This is set in the (optional) mod.lua file you put in the mod's base folder. This will apply a tag to the item in the Workshop, useful for searching for those of interest. In the game it will put the mod into a branch of a tree view which can be collapsed for quick browsing. An example mod.lua would be Category = "Weapons" If mod.lua is missing, the Category variable is not specified, or it's invalid then the mod is placed in the Misc category. Valid categories are: Combat Devices Physics Resources Rules Misc Disable Weapons Technology Materials Environments Campaigns Publishing and testing Once you are happy with how your mod is working locally, you can upload it to the Steam Workshop. Before you do this you need to create a preview.jpg file in the mod's folder which will represent it in Forts and on Steam Workshop. The size isn't so important, but the aspect ratio should be 16:9 so it appears correctly in Forts. The map previews are 1024*576, for example. This is fine for mods too. Now to publish the mod, go to the main menu and then enter the Workshop menu. Go to the Upload tab and select the mod you've been working on. Click on the Upload button, and then Yes. After a short while it will open the new item in the workshop. You should be subscribed to it automatically, and you should make it either hidden or visible to friends only for testing. To make sure the mod will work for others, you should get a friend to subscribe to it and run the game with it. Otherwise you should rename your mod folder and run the Workshop version of the mod. This will bring to light any asset path problems that had been missed during development. Change the folder name of you mod back to edit and update once the problems are fixed. Including Mods You can extend or force include other mods by adding an "Include" table to the top of the mod.lua script. You can only include built-in forts mods and workshop mods. Attempting to include non-built in local mods will fail upload validation and prevent the mod from being uploaded to the workshop. An example valid Include table added to the top of a mod.lua file would be: Include = { "unlimited-energy", "1293804859" } In the above example, this would force the inclusion of the "unlimited-energy" built in mod and the workshop mod with the id of 1293804859 (Large Sandbags). Including other Workshop mods will automatically tag your uploaded mod with the "Nested" tag so players can easily identify them in the workshop. There is a maximum include nesting depth of 5. i.e. you cannot include mods that chain include other mods if the total nesting (chain) depth is greater than 5. Forcing a mod in a map You can force a Workshop mod on in your custom map, in the same way as a built-in mod. In your map's mission script, add or edit the Mods table to include the published file id. For example, to make sure Large Sandbags are available in your map: Mods = { "1293804859" } To make it easier to understand, you could write it like this instead: sandbags_large = "1293804859" Mods = { sandbags_large } This is vital if your map includes new materials, devices or weapons added by a mod at the start. Environment Mods It is possible to create new environments via a mod. The mod must contain an "environment" sub-folder which follows the same folder structure as per the built-in environments. Environment mods will be detected on uploading and automatically tagged and categorised as an environment mod. The official Mars Workshop Environment Mod (workshop id 1308302446) can be used as an example of the folder structure for an environment mod. It is possible to override an existing mod with the "Include" table. As per Nested Mods, you can only include Built-in and Workshop environment mods. There are also additional Include table limitations for the environments: You can only include a single (environment) mod in the table Included environment mods cannot include/override other environment mods (i.e. max nesting depth of 1) Some built-in environment already override other environments and therefore cannot be overridden further. This is the list of built-in environments currently available to override: "alpine" "canyon" "desert" "fields" "midwest" "polluted" "trainingground" "dlc1_indo" "dlc1_japan" "dlc1_newzealand" "dlc1_oz" "dlc1_oznight" "dlc2_oceans_base"

#WTGuide1 大家好,今天我将为大家带来各国最佳陆战全真模式(RB)阵容指南。先简单介绍一下自己,我玩《战争雷霆》已经有8年左右了,具体时长记不太清啦。 本指南将涵盖我玩得比较多的国家,而对于中国或瑞典这类我自己没怎么玩过的国家,内容可能会稍显薄弱。哦对了,我会在工作之余逐步更新本指南。 指南的格式将按照从美国到以色列的顺序,并且每个国家的阵容会从最高战斗评级(BR)到最低战斗评级进行排列。 本指南会考虑战斗评级在匹配系统中的位置,以便在理想情况下获得尽可能多的降阶匹配(例如,最高载具为10.7时,大多数对局会在9.7-10.7之间)。不过匹配机制相当复杂,受多种因素影响,所以这并非总能实现(有些时候可能会匹配到9.)3在分房降级次数方面优于9.7或10.0。 本指南有望助你离MVP更近一步,避免一死就退。但即便未能完全降级,只要运用正确的方法,任何人都能带领队伍走向胜利。 哦,在开始之前有个温馨提示:使用乘员预设,这能让你在更换阵容时轻松不少。 美国 11.3/11.0 - 研发进行中
Tech Tree M1A2 -MBT ADATS – Anti Air+ Tank Destroyer IPM1 -MBT M1A1 HC -MBT HSTVL – Light Tank F-4E or F-5E – Air Support AH-64D - Helikopter Event/Squadron M1A1 AIM (Squadron Vehicle) -MBT Summary The American Top Tier line-up is loaded with options, on the ground 3 competitive MBTs well 4 if you count the M1A1 AIM Squadron reward, the ADATS; a vehicle that can kill both air and ground targets along with the HSTVL; a versatile light tank allowing you to scout targets and decrease spawn costs for your Air Support. For Air support you have a choice between the F-4E a jet equipped with the most air to ground guided ordinance in the game (tied with the A-10), the F-5E a Nimble aircraft with Air to Ground Mavericks and Air to Air Aim-9J and the AH-64D Apache for support armed with Hellfires and Stingers. All these combined leaves you with a lot of backup vehicles if you die and supreme air support. One Major flaw in this line-up is that if you get a night battle, the TV guided munitions on the F-4E and the F-5E cease to work (All TV guided munitions don’t work well at night unless you time your drop and guidance with the flare light duration). Additionally, the M1A2 has only gen 1 thermal sights making it difficult to pinpoint targets, luckily the M1A1 Aim has gen 2 thermals so having this vehicle in your line-up is a bonus. One other point is on the M1A1 HC the IRCM system makes the tank a lighthouse at night, so ensure to turn it off. 10.7 Tech Tree IPM1 -MBT M1A1 HC - MBT M1A1 - MBT HSTVL - Light Tank LAV-AD- Anti Air + Kind of Tank Destroyer A-7E or A-10 (Late) – Air support AH-1Z or AH-64A - Helikopter Event/Squadron M1A1 AIM (Squadron Vehicle) - MBT Merkava 3D (Event) - MBT Summary At 10.7 The Story is Similar 3 Competitive MBTS in the form of the IPM1, M1A1 HC and M1A1 ensure you have loads of backup ‘Main Battle Tanks’ even 4 if you have the Merkava 3D from an event in the past. And of course, the HSTVL for both support and quickly gaining air support. Sadly, you give up the ADATS but in return you get a fun vehicle in the form of the LAV-AD, armed with a 30mm gatling gun and stinger missiles it is well equipped for both air and ground engagements. Though stinger missiles are quite unreliable vs aircraft and in general until you get the upgraded stingers giving them a proximity fuse and making them much more reliable. Additionally, the LAV-AD can give up one of its ready to fire stinger x4 pods for a hydra unguided rocket pod like seen on aircraft. Air support wise you get the A-7E with Walleye tv guided bombs and the option of mountain a ‘thermal’ imaging pod for easier target acquisition. There is also the A-10 Warthog (Late), everyone has heard this name at least once. In war thunder the late version carries 4 AIM-9L for air defence and 6 Agm65D for ground attack, the D model Mavericks carry a thermal imager which while low quality makes target acquisition much easier compared to the B and of course A models, the Maverick D model additional works at night unlike the Tv Guided munitions if you are patient enough and gain altitude before engage enemy vehicles the A-10(Late)can work even at top tier, I personally plan to run it with the F-4E to easily adapt to whatever situation. This complemented by the AH-1Z with Hellfires and 2 AIM-9L or the AH-64A makes this a beefy line-up. 10.0
科技树 M1“艾布拉姆斯” - 主战坦克 LAV-AD - 全用途防空车 M1128“斯特瑞克” - 坦克歼击车 M3A3“布拉德利” - 轻型坦克 A-10(晚期型) - 近距与远距空中支援 F-105D“雷公” - 快速打击机 AH-1F - 直升机 活动/联队载具 M60 AMBT(活动) - 主战坦克 AGS(活动) - 坦克歼击车 总结 在10.0分房,你只有M1“艾布拉姆斯”或更低级的载具(如XM1或M60 AMBT,这两款表现都相当不错)作为主战坦克。轻型支援方面,你可以使用配备M900尾翼稳定脱壳穿甲弹的M1128“斯特瑞克”,该炮弹能击穿其战斗评级下的几乎所有目标;此外还有拥有各种所需技术装备的M3A3“布拉德利”,以及用于快速火力支援的活动载具AGS。空中支援的最佳选择是A-10(晚期型),因为它能更轻松地应对10.0权重的防空威胁,而且许多其他玩家使用的飞机很容易被AIM-9L导弹击落。 我还推荐F-105D“雷公”作为快速打击选项,它能迅速投弹并在敌方防空系统生成前撤离战场。当然,如果敌方已经部署了防空系统,即地对空导弹(SAM)系统,F-105D的作用就会受限。AH-1F提供了不错的空中支援,但也容易被SAM系统击落。 德国 11.3/11.0
科技树 Tam 2C、RadKampwagon、Begleitpanzer 57 或 PUMA - 轻型坦克 Leopard 2A5 - 主战坦克 Leopard 2A6 - 主战坦克 FlaRakRad – 防空导弹车 Wiesel 1A2 – 小型灵活坦克歼击车 SU-22UM3K 或 F4F – 空中支援 Tiger UHT - 直升机 活动/中队 Leopard 2PL(中队载具) 总结 德国顶级房配备了2辆主战坦克,其中Leopard 2A6拥有游戏中最强的炮弹。如果你拥有Leopard 2PL,那么就有3辆强大的主战坦克了。除此之外,德国还有许多轻型坦克,如Tam 2C、RadKampwagon、Begleitpanzer、PUMA,甚至还有令人头疼的Wiesel 1A2。这些载具都具备侦察能力,各有特色,但都在超出自身战斗评级的环境中作战。Tam 2c 拥有优秀的主炮和出色的热成像瞄准镜;Radkampawagon 是速度狂魔,主炮性能良好但没有热成像;Begleitpanzer(伴随坦克)是全能型反坦克载具;PUMA(美洲豹)则具备与其定位相符的良好主炮和装甲。Wiesel(鼬鼠)拥有出色的火炮俯角、极快的速度、同 Battle Rating(战斗评级)下优秀的反坦克导弹以及小巧的体型。将这些载具部署在侧翼作战,它们能轻松发挥优势。 空中支援方面,德国科技树中 8.3 以上权重的机型在实战效果上略显不足:要么是 SU-22UM3K,虽配备优秀的激光制导导弹但瞄准系统欠佳,容易被敌方针对;要么是 F4F,仅携带 2 枚电视制导弹药,这使得两者在面对顶级防空火力时都面临较高风险。虎式UHT是游戏中唯一配备“发射后不管”导弹的直升机,其瞄准具位于旋翼上方,使其能够快速从山丘后方探身,发射PARS 3导弹后迅速潜回掩体,同时导弹会追踪并摧毁目标。 10.0
科技树 Tam 2C 或 RadKampfwagon 90 – 轻型坦克 Leopard 2A4 - 主战坦克 Leopard 2K 或 Leopard 2A4(高级载具)- 主战坦克 FlaRakPZ 1 – 防空导弹系统 Begleitpanzer 57 或 PUMA – 轻型坦克 Wiesel 1A2 - 小型灵活坦克歼击车 Mig-21(高级载具)、F-84F 或 G91R/4 – 空中支援 Mi-24P/Mi24P HFS 80 - 直升机 活动/中队载具 PT-16/T14(Leopard 2 原型车)- 主战坦克 总结 在 10.0 分房,德国拥有最强阵容,包括 Leopard 2A4 和 2K 主战坦克、高级载具 Leopard 2A4 以及 PT-16/T14 Leopard 原型车,此外还有与轻型坦克和支援载具战斗评级更接近的装备,以及 FlaRakPZ 1 防空导弹系统。遗憾的是,在 8.7 - 10.0 分房之间,德国空中支援存在较大缺口。因此,除非你拥有高级米格-21,否则你只有少数低BR选择,例如F-84F或G91R/4。但幸运的是,在直升机方面,配备4枚R60M和4枚空对地导弹的米-24P能够同时应对空中和地面威胁。 9.3(特别提及)
科技树 PUMA、“鼬鼠”57式步兵战车、TAM——轻型坦克 KPZ-70——主战坦克 豹1A5——主战坦克 “山猫”——防空车辆 F84F、G91/R4——空中支援 Bo 105 PAH-1/1A1——直升机 活动/联队 C2A1——主战坦克 总结 德国9.3分房的阵容是最出色的阵容之一,拥有KPZ 70和豹1A5主战坦克,还有PUMA和“鼬鼠”57式步兵战车作为轻型坦克,以及“山猫”防空车辆(升级后表现良好),地面载具实力强劲。该分房的空中支援仍较为有限,但有一些优秀的直升机。 苏联 苏联 11.3/11.0
科技树 T-72B3 T-80BVM 2S25M T-90A 2S6“通古斯卡”(Tunguska) 米格-27K、苏-17M4或米格-27M 卡-52或米-28NM 活动/中队 BMP-2M 总结 10.7
科技树 T-72B3 T-80U 2S25M T-90A 2S6通古斯卡(Tunguska) Su-7BKL或Yak-38M KA-50或Mi-28N 活动/中队 总结 10.0
科技树 T-72B(1989)和/或T-72 TURMS-T T-80B 2S25M 菊花-S(Khrizantema-S) 米-24P/V或卡-29 苏-7BKL或雅克-38M 活动/中队载具 T-72M2 Moderna(活动载具) BMP-2M(中队载具) 总结 9.3(特别提及)
科技树 T-72A T-64B 2S25 菊花-S(Krhizantema-S) 米-24A(MI-24A) 雅克-38(Yak-38)或苏-7BMK(Su-7BMK)(或苏-7B(Su-7B)) 活动/中队 BMP-2M 总结 英国 英国 11.0
科技树 挑战者2“黑夜” 挑战者2(2F) 挑战者2 TES ADATS(M113) VFM5 美洲虎GR.1A(未来有望推出“狂风”) AH Mk.1“阿帕奇” 活动/中队 总结 10.7
科技树 挑战者2 挑战者Mk.3 维克斯Mk.7 风暴者HVM VFM5 美洲虎GR.1A G-LYNX或LYNX 活动/中队 总结 10.0
科技树 挑战者 Mk.2 或 挑战者 1 DS 挑战者 Mk.3 维克斯 Mk.7 ZA-35 VFM5 美洲虎 GR.1A G-LYNX 或 LYNX 活动/中队 总结 9.7(特别提及)
科技树 挑战者 Mk.2 挑战者 DS TTD ZA-35 VFM5 美洲虎 Gr.1 或鹞式 GR.3 侦察兵 AH.Mk.1 活动/中队 总结 8.7
科技树 酋长Mk.5 酋长Mk.3 象式Mk.1A 蜜獾MTTD或蜜獾105 ZA-35 ZT3A2 弯刀F Mk.1或掠夺者S1 侦察兵AH.1 Mk.1 活动/中队 总结 日本 尚未研发,注意科技树中9.0以上缺乏防空武器 11.0
科技树 Type 10 Type 90(B) Type 90 Type 16 Type 93 Type 87 F-4EJ改“鬼怪”II 或 F-4EJ“鬼怪”II AH-64DJP 活动/中队 10.7
科技树 90式(B) 90式 16式 93式 87式 F-1 AH-64DJP 活动/中队 总结 9.0(特别提及)
74式(G) 74式(F) 74式(E) 16式 93式 89式 87式RCV 87式 活动/中队 总结 中国 中国 尚未研发,注意科技树中9.7分以上缺乏防空武器 11.0
科技树 ZTZ99A ZTZ99-III ZTZ99-II PGZ04A ZLT11 F-5E Z-19E 活动/中队 10.7
科技树 ZTZ99-III ZTZ99-II PGZ04A ZLT11 F-104G Z-19E 活动/中队 9.7/10.0(特别提及)
一支强大的坦克阵容正等待着即将推出的直升机科技树 科技树 ZTZ96A ZTZ96P ZTZ96 PGZ04A F-100A、沈阳F-5或A-5C 活动/中队 8.7
科技树 M60A3 TTS ZTZ88A ZTZ59D1 PTZ89 PGZ09 和/或 WZ305 WMA301 J-4 或 F-86-F30 活动/联队 Object 122 TM 意大利 意大利 10.7(研发中,但它是最出色的之一)
科技树 阿瑞特 阿瑞特 PSO 半人马座 1 120 奥托马蒂克 VCC-80/30 F-104S A129(高级载具)现已停售 活动/中队 9.0(特别提及)
科技树 半人马座 I 105R 豹 1A5 VCC-80/60 VBC(PT2) F-84F 或 G-91R/4 A-129 国际型 (p) 活动/联队 法国 法国 研发进行中 11.0
科技树 勒克莱尔 SXX1 勒克莱尔 S2 勒克莱尔 ItO 90M 美洲虎 A EC-665 HAD 活动/中队 7.3
科技树 索玛SM 查尔25T AMX-50 福煦 AMX-50 AMX-13-90 AMX-13-40 F8F、F4U-7 或 AD-4/4NA 活动/中队 瑞典 瑞典 注:完全未进行研发 11.0
科技树 CV 90120 Strv 122B PLSS Strv 122A ItO 90M Strf 9040C 或 9040 BILL JA37C 或 AJ37 AHS 活动/中队 10.0
科技树 Strf 9040C Strv 121 LvKv 9040c Strf 9040 BILL A-32A MI-28A 活动/中队 以色列 以色列 科技树急需防空武器,尤其是在顶级房 11.0
科技树 梅卡瓦 Mk.4M 梅卡瓦 Mk.3B(未来可能会有分房权重10.7的Mk.3M版本 :)) 梅卡瓦 Mk.4B F-4E 鬼怪 II AH-64D 炽天使 马赫贝特防空系统 幼狮 C.7(但它的分房权重为11.3) 活动/联队载具 幼狮 C.2 10.0
科技树 加尔·巴塔什(Gal Batash) 梅卡瓦 Mk.3B 梅卡瓦 Mk.2D 或 B AH-1F 泽法(Tzefa) 玛赫贝特(Machbet) 幻影 IIICJ 活动/中队 9.3(特别提及)
科技树 加尔·巴塔什 梅卡瓦 Mk.2B 梅卡瓦 Mk.2D A-4N AH-1Q 或 MD-500陶式(小鸟) 玛赫贝特 萨尔 活动/中队




### 意大利单人战役各阵营/单位概述(非任务攻略) #### 前言 本指南仍在制作中,目前仅包含我期望最终呈现内容的框架。 本指南旨在帮助各位读者避免我初玩此游戏时犯下的错误,从而做出比我当时更明智的决策。 若你时间有限,以下是我对战役阵营选择的建议:以美军特种部队开局,仅建造该阵营单位,迅速抢占城镇以解锁英军装甲部队,随后全力建造英军装甲单位直至人口上限。 #### 战役单位心得(阵营之外) 战列舰的人口消耗与其作用相比过高。航空母舰或许值得你投入时间,但还需进一步研究。飞机/舰船不一定值得建造,只是因为增加更多公司的机会成本极高,所以在大约20-30回合之前,你几乎总是想要更多公司,而非任何舰船/飞机。 不过有几点需要注意:(建设中) 所有公司的升级选项卡内都有一个相同的选项,如下所示,因此在所有详细升级部分中均省略。 该选项位于第一列第三行。
如果你完全不知道我在说什么,只要继续往下翻,很快就会明白的 :) 特种部队连 技能总览
诌ć
升级总览
初始单位可用性
独特公司特性
实时战斗呼叫信息 默认
已升级
装甲连(英国) 解锁该连队需占领波坦察或奥尔顿 能力总览
诌ć
升级总览
诌ć
初始单位可用状态
独特公司特性
装甲连(美国) 解锁该连队需占领那不勒斯或安齐奥 能力总览
诌ć
升级总览
诌ć
初始单位可用状态
独特公司特性
空降连 技能总览
诌ć
升级总览
诌ć
初始单位可用性
独特公司特性
印度炮兵连 解锁该连队需占领巴里或奥托尼 能力总览
诌ć
升级总览
诌ć
初始单位可用状态
独特公司特性
机场与飞机 建设中 可购买的飞机
造船厂与舰船 在建项目 隐蔽所与游击队 部队特性 忠诚度 巴克拉姆 诺顿 瓦伦蒂诺 非常容易刷取,只需确保每回合都使用你的游击队小组来提升忠诚度,它们会刷新,所以不使用它们就无法获得任何收益! 结论 简版 只建造特种部队,尽快解锁英国装甲部队,然后只建造英国装甲部队,直到你拥有足够的部队覆盖意大利全境。只有在那时,才考虑按顺序建造飞机、驱逐舰或航母。 新版简版 只建造特种部队,无需英国装甲部队。**新中等规模版本** 忽略下方的长篇版本,特种部队允许你部署配备火焰喷射器的工兵乘坐汽车和黄鼠狼装甲车,快速突袭德军指挥部以实现速胜。 **长篇版本** 该建议的逻辑很简单: 你最常参与的战斗是小规模冲突。 通常你会选择参与这类战斗以获取更多奖励,并避免你的部队受到损伤。 在这些战斗中,大多数敌人是步兵或轻型载具,很少出现中型载具,几乎不会有重型坦克。因此,你可能需要最适合应对此类敌方战斗序列的部队。此外,许多战斗都涉及夺取并守住三个胜利点、包围敌方基地或抵御几波攻击,而要实现这些目标,最佳策略是立即主动推进,要么夺取据点,要么在敌方出生点迎击敌人。 在我看来,最能帮助你做到这一点的阵营是英国装甲连。不过,它并非在战役开始时就能立即解锁。战役开始时即可使用的次优选择是美国特种部队。他们拥有廉价且数量充足的火焰喷射器、机枪和轻型载具,能够有效对抗步兵。对我个人而言,它们也非常有趣,因为我最讨厌的一点就是:步兵单位升级为反坦克发射器武器后,其与其他步兵作战的能力会大幅削弱。但特种部队单位通过以下方式规避了这一问题——遭遇装甲单位时切换到火箭筒,消灭装甲威胁后立即切换回来。 即便是在漫长的持久战中,特种部队突击队也极具杀伤力。该连还有一些升级项能惠及所有步兵,具体表现为增加步兵生命值,以及降低增援/武器升级成本。 回到英国装甲连,可能需要几场战斗才能真正让它们发挥作用,但如果你手动操作,大多数战斗都会为你提供两个技能点。解锁载具后勤需要10点技能点,因此在不进行任何剧情任务的情况下,你需要进行5场遭遇战才能将连队升级到这一阶段,但一旦解锁,游戏就会变得非常简单。原因在于,任务一开始你就能部署两辆十字军防空中型坦克,它们能消灭敌人的所有步兵,从而轻松快速地取得胜利。此外,战斗刚开始不久你还能召唤两辆丘吉尔坦克,这进一步简化了战斗。早期战斗也因你能呼叫燃油补给而变得更加轻松,这能让你更快获得十字军坦克。我也觉得在人口容量有限的情况下,应该专注于连队以快速推进。如果你弹药充足,或许可以用运输机为连队补给,使其持续推进。但战列舰、战斗机和侦察机的成本似乎都太高了,尤其是当你完全可以使用游击队时。不过,如果你觉得使用这些单位很有趣,那完全可以这么做! ### 结论




正在转移您的存档。您也将获得相应的成就。 从安卓设备转移至Steam平台: 1. 获取存档文件的第一步是在您的安卓设备上找到 storage/sdcard/Android/data/com.bethsoft.falloutshelter/files 路径。您可以使用ES文件浏览器进行操作,或者通过microUSB转USB数据线将安卓设备连接到电脑,直接在电脑上进行转移。 2. 进入上述指定的文件位置后,您会看到一些名为“VaultX.sav”和“VaultX.sav.bkp”的文件(具体数量取决于您的存档数量,例如:存档槽1对应的文件为vault1.sav)。 3. 复制这两个文件。 4. 现在,在搜索栏中输入%AppData%并打开Roaming文件夹。 5. 点击此处返回到AppData文件夹。
6. 现在,进入本地文件夹,然后找到《辐射:避难所》文件夹。 7. 将文件粘贴到这里。注意,如果你已有存档槽1,请将安卓文件重命名为其他存档槽(如vault2.sav和vault2.sav.bkp)。 完成后,打开游戏并加载存档。 从Bethesda平台转移到Steam平台: 此操作更简单: 1. 导航至C: Users Admin(在此处填写你的用户名) Documents My Games Fallout Shelter 2. 复制vaultX.sav和vaultX.sav.bkp文件 3. 从第4步开始,执行与安卓版相同的步骤。 从iOS转移到Steam平台: 1. 在电脑上安装“iExplorer”程序(即使是演示模式也足够使用)。 2. 连接你的设备并运行该程序。 3. 浏览左侧的选项列表:Backups/Backups Explorer(加载可能需要一些时间)。 4. 选择AppDomain-com.bethsoft.《辐射:避难所》和打开“文档”文件夹 5. 两个存档文件会在那里:VaultX.sav 和 VaultX.sav.bkp,将两者都复制。 6. 从第4步开始,执行与安卓版相同的步骤。 从微软商店版转移到Steam版 1. 打开路径:C: Users user_name AppData Local Packages BethesdaSoftworks.FalloutShelter_3275kfvn8vcwc SystemAppData wgs BIG_CRYPTIC_NUMBER ANOTHER_BIG_CRYPTIC_NUMBER(例如我的路径是C: Users user_name AppData Local Packages BethesdaSoftworks.FalloutShelter_3275kfvn8vcwc SystemAppData wgs 00090000026CAD6D_0000000000000000000000007FACC08D)。 2. 最终会有三个文件。其中两个文件大小为1kb,另一个文件较大(初始约为64kb),这就是我们要找的文件。3º - 找到你想要的存档对应的代码,并将其重命名为vault1.sav(例如:将“BB81E4B38B64413D9D5C886B7F9B580B”重命名为“vault1.sav”) 4º - 现在,从第4步开始按照安卓版的相同步骤操作。 Credits to den



本指南列出了我为《致命公司》构思的成就。由于开发者尚未在游戏中添加成就系统,我便自行发挥想象设计了这些内容。希望你能喜欢。 这仅仅是个开始……
完成第一个配额 颈部按摩
让布雷肯杀死你 让布雷肯杀死你 一秒前……/一秒前……
回头看,或在队友死亡前一秒看向线圈怪(Coilhead)来拯救队友 这里非常冷
首次造访被冰雪覆盖的月球 Visit the snowy moon for the first time 神风特攻队 / Kamikaze
通过触碰地雷或喷气背包击杀怪物 Bad babysitter
激怒小食人魔,让其变身成怪物 我的身体现在安全了
戴上口罩 Золотая Лихорадка / 淘金热
为公司的一个配额提供3个及以上金条 技术仇恨 / Hatred of technology
让老鸟来终结你 失败者 / Loser
与最珍贵的废品一同毁灭 技艺精湛的飞行员 / Masterful airman
使用喷气背包飞行5+公里 Is there an end?..
完成5,000的配额 决斗 / The Duel
用枪杀死胡桃夹子 用枪杀死胡桃夹子 电力充公 / 电力充公
从插槽中取出装置 私刑 / Lynching
击杀拟态者 击杀假面人 意外失败 / 突然失败
在传送至设施内部后的几秒内死亡 派对!
与怪物一同随着收音机(Boombox)的音乐起舞 Модный Приговор / Fashion Armageddon
购买并试穿所有服装 碰撞测试 / Crash-test
连续炸毁5艘巡洋舰配额 万事通 / Know-it-all
填写并阅读完整的怪物图鉴 自然的错误 / A mistake of nature
杀死蕨类怪物 杀死蕨类怪物(Bracken) 快跑。/ 快跑。
与小丑相遇 与小丑会面 最佳员工 / The best employee
完成10,000配额 Арахнофобия / Arachnophobia
杀死蜘蛛 杀死地堡蜘蛛 现在这是我们的森林
杀死巨人 杀死森林守护者 钥匙大师 / Key Master
打开100扇锁着的门 打开100扇锁着的门 这里有点不对劲……/这里有点不对劲……
传送到拟态号飞船 将假面人传送到飞船 好收获 / 干得漂亮
杀死重击者(Thumper) 无意的背叛?
通过减速、对着对讲机大喊等方式导致队友死亡。 懒惰 / Laziness
成为整个配额中最懒的员工 这到底是怎么回事?
收集并阅读所有西格德的笔记 盲目 / Blindness
在烟雾中死亡或被闪光弹致盲时死亡 刀战
用刀杀死管家 用刀杀死管家 全部上船 / 全部进入船内
从月球上带走所有废料 信使 / Messenger
使用信号转换器发送50条消息 双面
让理发师杀死你 电工
开启25个配电箱 Forgotten
在飞船离开后,在月球上停留满整个配额 卫生 / Hygiene
洗个澡 内向者 / Introvert
独自完成2000的配额 指南结束




会长天下第二
简介
TA什么都没有写

发帖达人Ⅰ