钢铁雄心4吧 关注:444,299贴子:8,092,607
  • 14回复贴,共1

【教程】HOI4游戏文件的修改与MOD的制作

只看楼主收藏回复

看到很多人开始接触钢4的MOD制作但是又一头雾水,那么就聊聊我们现在在玩的这些mod是怎么运行的吧
首先,每一个MOD文件都会被分为
1.代码部分(code)
2.描述部分(desc)
代码部分即我们修改的路径为%steamapp%common\hearts of iron 4\目录下绝大多数的文档
格式包括.gfx .txt .yml等等
例如试图为沙特创建一个focus(国策)时,我们可以在%steamapp%common\hearts of iron 4\common\national_focus\目录下创建一个*.txt或者*.lua文件,在这个文件内编写的代码就是被游戏执行后处理的内容。
比如,我们为沙特创建一个新的国策树。这时,我们就需要在上述目录内创建一个.txt或.lua文件
(当然,我比较推荐在C:\Users\你的用户名\Documents\Paradox Interactive\Hearts of Iron IV\mod\ 下,先创建一个*.txt文件,内容如下自行修改,保存后将扩展名改为.mod即可
name="MOD名" #你想给MOD起什么名字就填什么
path="mod/要使用的路径名/" #这决定了游戏加载这个脚本后会读取哪个路径里的文件,需要罗马字母或数字
tags={
"种类" #也就是告知别人你的mod修改了哪些内容,具体分类可以参考游戏自带的mod tools
}
supported_version="1.4.1" #支持的版本号,游戏更新后旧版本mod出现红叹号时,可以修改以消除

在创建好空白文件后,为了告诉游戏本体这是个focus文件,我们需要添加一个文件头描述
focus_tree = {
}
这时,游戏在加载mod后读取到这个文件时,就会认为这是个focus(国策)文件


1楼2017-08-01 21:05回复
    当然,只有文件头的话并不会影响到游戏的内容。
    接着我们需要给这个国策树一个id,这个id并不会影响任何东西,id只是一个名字

    然后,我们需要告诉游戏谁可以用这个国策树,这时,我们就会接触到第一个“变量”,也是在写MOD时经常会用到的一个调用。

    country = {
    factor = 0
    }
    指定基础所有国家使用这个国策的可能性为0
    modifier = {} 是一个调整代码,这个代码我们会在设置ai、调整属性之类的地方用到。
    这里的modifier表示对factor = 0中,0这个值的调整。
    add = 10代表增加几率10%,而tag则代表一个国家代码
    国家代码可以在控制台用tdebug进行查看。
    这里的代码的含义即,所有国家都不会使用这个国策树,但SAU(沙特阿拉伯)会以10%的几率使用。
    当然,在没有更高优先级的国策树时,游戏就会采用这个国策树作为SAU的国策树。


    2楼2017-08-01 21:19
    回复
      2025-05-15 18:07:17
      广告
      我们已经告诉游戏必要的内容后,就可以创建第一个国策了。
      一个focus需要什么内容呢
      首先国策需要一个名字(id)来方便你进行调用,其次是它在游戏中所处的位置(x, y),花费的事件(cost),图标(icon),是否需要前置(prerequisite),是否有互斥国策(mutually_exclusive),何时可用(available),何时取消(cancel),何时跳过(bypass),不可用时是否取消(cancel_if_invalid),不可用时是否继续(continue_if_invalid),被傀儡后是否可用(available_if_capitulated),游戏内显示(completion_tooltip),以及最重要的能够获得什么(completion_reward)
      下面就是一个比较完整的国策代码的模板


      3楼2017-08-01 21:29
      回复
        有些扯远了。之前我们提到id是一个名字,方便我们调用时使用
        你赋予它一个名字后,如果不告知一个描述(desc),那么游戏中只会显示这个id
        添加描述,实际上和游戏的汉化方法是一致的。
        %steamapp%common\hearts of iron 4\目录下有一个名为localisation\的文件夹
        这个文件夹内的.yml文件实际上就是描述(desc)文件

        l_english: 实际上就是language English,而下方的代码是不是很熟悉
        国名的构成 = tag_ideology 即国家代码_意识形态
        而引号内的部分就是在游戏中显示的部分
        顺便一提,HOI4本身并不固定加载文件内容和文件名必须相关
        也就是说在一个文件里可以修改民族精神(idea)国策(focus)国名(countries)等等


        4楼2017-08-01 21:44
        收起回复
          问一下楼主大大,怎么编辑器读取一个本体的国策会使编辑器停止工作呢?


          来自Android客户端5楼2017-11-26 09:29
          收起回复
            请问一下,我只想在新mod里改很小部分原国策,,先把原国策文件和精神文件复制过来,再修改后,为啥游戏运行的是原版文件而不是新mod里修改过的文件国策精神?


            IP属地:四川来自Android客户端6楼2022-04-14 13:42
            收起回复
              楼主还在吗?我现在想知道战败后战胜国的缴获数量的计算方法应该看哪个文件?


              IP属地:江苏来自Android客户端7楼2023-03-05 22:50
              回复
                楼主想问一下,在哪修改成chinese后,游戏里人物名字就全变成了中文了昂?需要详细教程


                IP属地:黑龙江8楼2024-11-23 21:30
                收起回复