维多利亚2吧 关注:77,009贴子:1,941,062
  • 7回复贴,共1

【循环操作事件】打开附庸互动菜单

取消只看楼主收藏回复

个人在体验mod:GFM时,基于477877792、477877793两个事件,复制自改了一份mod的“打开附庸互动菜单”的决议与事件。但感觉原版的代码有些不适(本人写的送钱事件,十分不友好),花了一些时间写了个改进升级版。
mod原版事件:选到要交互的附庸的tag,交互1次后事件直接消失,不能再次操作。想交互第2次,或者想交互下一个tag,必须从头枚举一遍附庸的tag。
升级后的事件:选到要交互的附庸的tag,交互1次后事件不会消失,可交互第n次,也可进入“下一个国家”选项,交互下一个附庸。不想交互后选择“退出”,不影响下一次事件开启时从头枚举。
两个决议,分别是事件仅单次操作、事件可多次操作。
事件通过四个flag实现,possible_interactions、interacted_with、keepItOpen、keepItOpen_next。代码写得不好,希望高手能简化版本。
注:四个flag不建议与其他功能相关,自行改名后单独运用于此功能。
注:事件id不可重叠,请自己找到不会覆盖其他功能的id。
注:这个决议与事件在编写时,没有同时触发过两个及以上的事件,不保证这种情况下会有bug发生


IP属地:广东本楼含有高级字体1楼2024-09-30 10:30回复
    country_event = {
    id = 2316000
    is_triggered_only = yes
    title = " $FROMCOUNTRY$ 的事务"
    desc = "你要对 $FROMCOUNTRY$ 执行什么?如果不是它,那么选择“下个附庸”以循环通过,或选择“退出”返回游戏。"
    option = {
    name = "给2M的资金"
    money = -2000000
    FROM = {
    money = 2000000
    relation = { who = THIS value = 100 }
    }
    random_country = {
    limit = { tag = FROM
    THIS = { has_country_flag = keepItOpen }
    }
    country_event = 2316001
    THIS = { set_country_flag = possible_interactions }
    }
    any_country = {
    limit = { exists = yes vassal_of = THIS
    THIS = { NOT = { has_country_flag = keepItOpen } }
    }
    clr_country_flag = interacted_with
    }
    }
    option = {
    name = "下个附庸"
    random_country = {
    limit = { tag = THIS has_country_flag = keepItOpen }
    set_country_flag = keepItOpen_next
    }
    random_country = {
    limit = { exists = yes vassal_of = THIS
    NOT = { has_country_flag = interacted_with }
    }
    country_event = 2316001
    THIS = { set_country_flag = possible_interactions }
    }
    any_country = {
    limit = { exists = yes vassal_of = THIS
    THIS = { NOT = { has_country_flag = possible_interactions } }
    }
    clr_country_flag = interacted_with
    THIS = { clr_country_flag = keepItOpen_next clr_country_flag = keepItOpen }
    }
    }
    option = {
    name = "退出"
    any_country = {
    limit = { exists = yes vassal_of = THIS }
    clr_country_flag = interacted_with
    }
    clr_country_flag = keepItOpen_next
    clr_country_flag = keepItOpen
    }
    }


    IP属地:广东2楼2024-09-30 10:31
    回复
      2026-03-20 12:08:16
      广告
      不感兴趣
      开通SVIP免广告
      country_event = {
      id = 2316001
      is_triggered_only = yes
      title = "互动"
      desc = "宗主国与你互动了"
      is_triggered_only = yes
      option = {
      name = "OK"
      random_country = {
      limit = { tag = FROM
      OR = {
      NOT = { has_country_flag=keepItOpen }
      AND = {
      has_country_flag=keepItOpen
      NOT = { has_country_flag=keepItOpen_next }
      }
      }
      }
      THIS = { set_country_flag = interacted_with }
      }
      FROM = {
      clr_country_flag = possible_interactions
      }
      overlord = { country_event = 2316000 }
      }
      }


      IP属地:广东3楼2024-09-30 10:31
      回复

        贴吧发帖会吞符号,放个图方便看


        IP属地:广东4楼2024-09-30 10:32
        回复
          决议那边的忘记发了...


          IP属地:广东7楼2024-09-30 17:52
          回复
            political_decisions = {
            ina_TOOL_vassal_interactions = {
            alert = no
            potential = {
            ai = no
            num_of_vassals_no_substates = 1
            }
            allow = {
            civilized = yes
            }
            effect = {
            random_country = {
            limit = {
            exists = yes
            vassal_of = THIS
            }
            country_event = 2316001
            }
            }
            }
            ina_TOOL_vassal_interactions_2 = {
            alert = no
            potential = {
            ai = no
            num_of_vassals_no_substates = 1
            }
            allow = {
            civilized = yes
            }
            effect = {
            set_country_flag = ina_flag_tool_keepItOpen
            random_country = {
            limit = {
            exists = yes
            vassal_of = THIS
            }
            country_event = 2316001
            }
            }
            }
            }


            IP属地:广东8楼2024-09-30 17:54
            回复
              2、3楼的是事件代码,放在events文件夹内,建议新建文档方便管理
              8楼的是决议代码,放在decisions文件夹内,同样建议新建文档方便管理
              localisation翻译文件写不写都无所谓
              ina_TOOL_vassal_interactions_title;打开附庸菜单;;;;;;;;;;;;x
              ina_TOOL_vassal_interactions_desc;[工具模块] 打开单次附庸菜单;;;;;;;;;;;;x
              ina_TOOL_vassal_interactions_2_title;打开附庸菜单;;;;;;;;;;;;x
              ina_TOOL_vassal_interactions_2_desc;[工具模块] 打开复次附庸菜单;;;;;;;;;;;;x


              IP属地:广东9楼2024-09-30 17:57
              回复
                https://bbs.52pcgame.net/forum.php?mod=viewthread&tid=531726
                52那边比较方便看代码


                IP属地:广东10楼2024-09-30 18:05
                回复