维多利亚2吧 关注:76,406贴子:1,931,880
  • 16回复贴,共1

【元区域】MOD教程:实现EU3wiki的元区域(Metaregions)构建

只看楼主收藏回复


1L效果图


IP属地:江苏1楼2022-10-21 16:36回复
    技术贴,留名


    IP属地:北京来自Android客户端2楼2022-10-21 16:41
    回复
      V2如何实现元区域?
      很简单,用./map/region_sea.txt就行了!
      这是P社遗留的用于定义海洋省份所属区域的文件,但它对陆地省份同样有效……或者说更有效。
      在region_sea.txt中写入:
      region1 = { 1612 }
      region2 = { 1612 }
      (可选,用于在地区地图【想必看官已经注意到,根据它实际的显示情况,这是一个不准确的翻译——区域地图更能表明它的实际作用】显示对应区域的翻译名称)在./localisation/*.csv(复制一个已有的csv,如何填csv且不破坏原有格式请参阅基础教程,使用恰当的编辑器)中写入:
      ;;;;;;;;;;
      region1;Region 1;;;;;;;;;;
      region2;Region 2;;;;;;;;;;
      启动游戏,切换到地区地图,鼠标悬停在PROV1612上,就可以看到1L图相同的效果出现了!
      正像你已经注意到的一样,我们为PROV1612新指定了两个区域——你甚至可以填充更多区域。


      IP属地:江苏4楼2022-10-21 17:02
      回复
        我能不能更方便地写元区域语句?
        可以!这里提供了一个简单的可执行文件,帮助你根据./history/provinces中的文件夹及文件夹中的省份文件,生成对应的元区域语句。
        将它放置在v2game.exe所在的目录下(或者mod文件夹中的相同位置,这将使用mod文件夹中的provinces文件夹及其中的文件作为输入来写元区域语句),并且执行,你将在你放置该可执行文件的目录下得到元区域文件region_sea.txt。
        这个可执行文件的下载链接在本楼的楼中楼。如果你没有看见,可能是它被系统隐藏或删除,请提醒楼主更新。


        IP属地:江苏5楼2022-10-21 17:08
        收起回复
          在EU3 Wiki中关于元区域的页面,也许可以对你进一步了解元区域的作用有帮助:
          https://eu3.paradoxwikis.com/Metaregions


          IP属地:江苏6楼2022-10-21 17:13
          收起回复


            IP属地:安徽来自Android客户端7楼2022-10-21 17:29
            回复
              虽然看不懂,但我大受震撼


              IP属地:江苏来自Android客户端8楼2022-10-21 17:53
              回复
                资瓷一个
                才发现元区域还能在地区地图里显示啊
                另外补充一下元区域放在region.txt里也可以;定义一个陆地省份元区域any_land_province来使用应该比嵌套使用any_owned性能要好


                IP属地:河北9楼2022-10-21 19:11
                回复
                  dd


                  IP属地:河北来自Android客户端10楼2022-10-21 19:29
                  回复
                    牛逼!支持支持!


                    IP属地:上海来自Android客户端11楼2022-10-21 19:52
                    回复


                      IP属地:广东来自Android客户端12楼2022-10-21 19:54
                      回复
                        什么是元区域?(原3L)
                        在元区域之前,我们先讲一下区域。区域(Region)包含若干个省份,在EU3/V2所提供的语句中的用途包括:
                        1、范围判定,如TUR_860 = { ... (你需要的条件语句) } 会检测对于区域的每个省份,对应条件是否满足;当条件语句在区域的至少一个省份为真时,返回真值。
                        2、判定省份是否在某区域中,如860 = { region = TUR_860 }检测ID为860的省份是否在区域TUR_860中。
                        3、对区域中的每个省份执行效果,如TUR_860 = { add_core = TUR }或TUR_860 = { secede_province = THIS }或TUR_860 = { add_province_modifier = { name = baby_boom duration = -1 } }等。
                        注意,区域不是地区(State),对于地区范围可用的any_owned和any_owned_province用在区域范围内,会导致错误或游戏崩溃。
                        EU3 wiki中指出,在EU3的./map/region.txt中可以通过创建一个包含所有省份编号的区域(Region)来实现元区域。但在V2中,由于region.txt中的每个省份会归属于最先出现的一个区域对应的地区,如果要在该文件中实现元区域请注意这一点。利用region_sea.txt可以实现“地区”与“区域”的分离。


                        IP属地:江苏13楼2022-10-21 20:14
                        回复


                          IP属地:广东来自Android客户端14楼2022-10-22 12:47
                          回复
                            10月更新的GFM最新版就根据这个逻辑实现了“显示潜在可开发的珍贵RGO”的功能,如图所示:





                            IP属地:江苏来自Android客户端15楼2022-10-23 18:14
                            回复