CAFE

CK 모드 게시판

[CK2 모딩 팁]내멋대로 쓰는 Crusader King 2 모딩 매뉴얼 (19) 계승법 및 성별법 (2015/05/08 수정)

작성자tacitus|작성시간15.02.24|조회수2,626 목록 댓글 9

내멋대로 쓰는 Crusader Kings 2 모딩 매뉴얼

12. 계승법 및 성별법 모딩

(1) 서설

제목을 보시고 놀라서 클릭하신 분도 계실 겁니다. 왜? 계승법 및 성별법 자체는 모딩의 대상이 안 되거든요. 중요한 코어 부분이 하드코딩되어 있기 때문인데, 그래서 일부 계승법의 경우에는 그 구체적인 메커니즘이 알려져 있지 않은 경우도 있습니다.

그럼 이게 왜 나왔는가.. CKII 가 지원하는 13가지 계승법과 5가지 성별법 자체를 수정할 수는 없습니다. 이 부분은 하드코딩된 부분이라서요. 물론 새로운 계승법을 창조하는 것도 불가능합니다. 하더라도 시스템과 연계할 방법이 없기 때문입니다. 그러나 어떤 종교나 문화가 특정한 계승법 또는 성별법을 사용할 수 있도록 수정할 수는 있습니다. 예를 들면 양성평등 계승법을 사용할 수 있는 경우는 순결파 종교나 바스크족 등에 한정되는데, 모딩을 통해서 다른 민족 또는 종교를 신봉하는 군주가 양성평등 계승법을 사용할 수 있도록 오픈할 수는 있다는 것입니다. 계승법 및 성별법의 모딩은 이와 같이 해당 계승법을 사용할 수 있는 조건의 모딩에 한정됩니다.

다만, 하드코딩된 계승법 및 성별법의 특성으로 인해, 특정 계승법과 성별법의 조합은 실제 실행했을 때에 의도와 다른 동작을 할 수도 있습니다. 따라서, 일반적으로 허용되지 않는 계승법과 성별법의 조합은 사용 시 충분한 테스트를 필요로 합니다.

(2) 계승법 및 성별법 사용 조건의 변경

계승법 및 성별법의 사용에 관한 조건을 정하는 파일은 decisions/succession_laws.txt 입니다. 파일의 대략적인 구조는 다음과 같습니다.

succession_laws = {
  ...13가지 계승법...
}

gender_laws = {
  ...5가지 성별법...
}

어떤 경우에도, 여기에 정의된 각각의 계승법 및 성별법의 이름을 변경하지 않도록 해 주십시오. 오류가 발생할 수 있습니다.

13가지 계승법

모딩 가이드이므로 각각의 계승법에 대해서 설명하지는 않겠습니다만, 어떤 항목이 어떤 계승법인지는 알아야 해당 항목을 찾아갈 수 있으므로, 그 부분만 적어두겠습니다. 한글 이름은 카페의 공식 한글패치의 번역을 그대로 따랐습니다.

  • succ_gavelkind = { } : 분할 상속제
  • succ_primogeniture = { } : 장자 상속제
  • succ_seniority = { } : 연장자 상속제
  • succ_ultimogeniture = { } : 말자 상속제
  • succ_feudal_elective = { } : 선거 군주제
  • succ_turkish_succession = { } : 터키쉬
  • succ_elective_gavelkind = { } : 선거 분할 상속제
  • succ_tanistry = { } : 족장 후계자
  • succ_appointment = { } : 임명제
  • succ_catholic_bishopric = { } : 주교직
  • succ_papal_succession = { } : 교황의 승계
  • succ_open_elective = { } : 선거 공화제
  • succ_patrician_elective = { } : 도시귀족 선거제

5가지 성별법

  • agnatic_succession = { } : 남성 상속
  • cognatic_succession = { } : 남성우선 상속
  • true_cognatic_succession = { } : 남녀평등 상속
  • enatic_cognatic_succession = { } : 여성우선 상속
  • enatic_succession = { } : 여성 상속

enatic(모계상속)에 해당하는 마지막 2개 성별법(여성우선 상속, 여성 상속)은 게임 내에서는 공식적으로 사용되지 않으며, 선택 역시 불가능합니다만, 모딩 시 사용할 수 있도록 하드코딩된 코어 코드는 준비가 되어 있습니다. 따라서, 원한다면 조건의 코딩을 통해 게임 내에서 여성상속 내지 여성우선 상속제를 채택하는 것은 가능합니다.

다만, 이러한 모계 성별법으로의 변경이 게임 내의 다른 이벤트들과 충돌을 일으킬 가능성이 있는 것은 별개 문제입니다.

각각의 계승법 및 성별법 디시전의 구조

아래는 가장 인기있는(?) 상속제 중 하나인 선거 군주제의 디시전입니다.

  succ_feudal_elective = {
    oldest_child_opinion = -30
    child_opinion = -10
    dynasty_opinion = -5
    vassal_opinion = 20
    potential = {
      holder_scope = {
        OR = {
          independent = yes
          NOT = {
            any_liege = {
              holy_order = yes
            }
          }
        }
        NOT = { religion_group = muslim }
        NOT = { religion_group = indian_group }
        is_merchant_republic = no
        is_patrician = no
        
        OR = {
          NOT = { religion_group = pagan_group }
          is_reformed_religion = yes
          religion = hellenic_pagan
        }
      }
      OR = {
        is_landless_type_title = no
        is_tribal_type_title = yes
        temporary = yes
      }
      is_primary_type_title = no
      NOT = { tier = baron }
      OR = {
        AND = {
          tier = baron
          is_feudal = yes
        }
        holder_scope = { is_feudal = yes }
      }
    }
    effect = {
      succession = feudal_elective
    }
    revoke_allowed = {
      always = no
    }      
  }

각각의 성별법 및 계승법의 가장 윗줄에는 이 성별법을 사용했을 때의 오피니언 효과에 대해서 적혀 있습니다. 선거 군주제로의 변경은 장자들은 당연히 싫어할 것이고(그래서 -30), 가문원들도 좋아하진 않겠죠(-5). 봉신들은 자신들이 군주가 될 가능성이 생기는 것이기도 하고, 또 자신들이 군주를 옹립할 수 있으니 좋아하겠죠(+20). 뭐 이런 식으로 해당 계승법의 특징에 따라서 오피니언의 증감을 정의한 것인데, 이 부분을 수정할 일은 보통 없을 겁니다.

그 다음에는 potential = { } 섹션이 오는데, 이건 이제 너무 많이 봐서, 무엇을 정하는 섹션인지 다 아시겠죠? 계승법 및 성별법 모딩의 핵심이 되는, 이 상속제를 사용하기 위한 조건을 정의하는 부분입니다. 이 조건을 만족하지 못하면 계승법 변경 목록에 이 계승법이 아예 나타나지 않습니다.

potential = { } 및 allow = { } 의 기본 스코프는 타이틀입니다. 현재 플레이어가 쥐고 있는 프라이머리 타이틀이죠. 그래서 플레이어 캐릭터에 관한 조건을 기술하는 경우에 holder_scope = { } 스코프를 사용해서 캐릭터 스코프로 전환을 합니다. 이 점 유의하셔야 합니다. (ROOT 나 FROM 은 사용되지 않습니다.)

여기에는 없습니다만, 그 뒤에 allow = { } 가 따라올 수도 있습니다. allow = { } 의 역할, potential = { } 과 allow = { } 의 차이는 일반적인 디시전과 동일합니다.

effect = { } 는 계승법 및 성별법 선택 메뉴에서 이 항목을 선택했을 때의 효과(실행할 커맨드)를 기술하는 부분인데, 보통은 succession = 커맨드 또는 gender_succ = 커맨드만 존재합니다.

succession = 계승법 또는 gender_succ = 성별법 커맨드는 여기서뿐만 아니라 이벤트 등에서도 사용이 가능한 명령어입니다. 즉, 이벤트를 통해서 강제로 계승법 또는 성별법을 변경하는 것도 불가능하지는 않다는 이야깁니다. 이렇게 계승법을 변경했을 경우, 변경된 계승법에 따른 새로운 후계자를 다시 계산하기 위해 recalc_succession = yes 명령어를 함께 사용해 주는 것이 좋겠습니다.

계승법을 수정하는 디시전의 특성상, potential = { } 및 allow = { } 에서 사용되는 조건문들은 타이틀과 관련된 조건문이 많고, 캐릭터와 관련된 조건문들도 많이 사용되는 편입니다. 자주 사용되는 몇 가지 조건문들을 살펴보겠습니다.

사실 대부분 앞에서 봤던 것들이예요. 또한 이 조건문들만 사용 가능한 것도 아닙니다. 다만 이벤트에서 제가 별로 사용하지 않아서 빼놓았던 몇몇 조건문들이 있어서 이 부분은 조금 자세히 설명하고, 아닌 것은 그냥 막 넘어갈 겁니다.

1) 조건문을 항상 참 또는 거짓으로 만들고 싶은 경우
  • always = yes : 이 조건문은 해당 섹션의 조건 판정 결과를 항상 참으로 만들어주는 조건문입니다. 이 계승법 또는 성별법을 어떤 경우에든 사용할 수 있도록 하고 싶다면, potential = { } 섹션에 이 한 줄만 적어주시면 됩니다. allow = { } 는 필요가 없겠죠. 성별법 중 남성 상속제에 실제로 이렇게 되어 있습니다.

  • always = no : 이 조건문은 반대로, 해당 섹션의 조건 판정 결과를 항상 거짓으로 만들어주는 조건문입니다. 따라서 이 조건문이 potential = { } 에서 사용되면 이 계승법 또는 성별법은 게임에서 사용되지 않게 됩니다. 성별법 중 모계 상속 관련 성별법들은 이 처리가 되어 있습니다.

2) 오직 플레이어만 해당 계승법 및 상속법을 쓰게 만들고 싶은 경우

예를 들면 게임 내에서 공식적으로는 쓰이지 않는 여성 상속제나 여성우선 상속제를 투입하고 싶은 경우에, 이런 저런 조건을 붙이는 것도 귀찮은 경우에 이것을 사용하시면 됩니다. 이미 여러번 등장한 바 있는 마법의 문장이죠.

  • ai = no : 이 조건문은 오직 플레이어인 경우에만 조건을 참으로 만듭니다. 위에서 말씀드렸듯이, potential = { } 의 기본 스코프는 타이틀이므로, 실제 potential = { } 내부에서 이 조건을 사용하시려면 holder_scope = { } 스코프 지시자를 함께 써 주셔야 합니다.
  potential = {
    holder_scope = {
      ai = no
    }
  }

만약 반대로, 플레이어 이외의 다른 ai 만 쓰게 만들고 싶다면, ai = no 대신 ai = yes 를 적어 주시면 됩니다.

3) 캐릭터 및 타이틀과 관련된 각종 조건문들
  • tier = 작위 등급 : 타이틀의 작위가 어느 등급인지를 봅니다. 이미 다루었던 거죠?

  • title = 타이틀 이름 : 해당 캐릭터가 특정 프로빈스의 타이틀을 가지고 있는지를 확인하기 위한 조건문입니다. 앞에서도 여러번 등장했었죠. 계승법에서는 title = k_papal_state 처럼 교황 타이틀인지를 확인하기 위해서 쓰였습니다.

  • is_theocracy = yes/no : 스코프의 캐릭터가 종교 캐릭터(주교 등)이거나 스코프의 타이틀이 종교 관련 타이틀인 경우 yes 가 됩니다.

  • is_tribal = yes/no : 스코프의 캐릭터가 부족정 캐릭터이거나 타이틀의 홀딩이 부족정의 그것인 경우에 yes 가 됩니다.

  • is_feudal = yes/no : 스코프의 캐릭터가 봉건귀족인 경우 또는 스코프의 타이틀이 가리키는 홀딩이 봉건제의 그것인 경우 yes 가 됩니다.

  • is_republic = yes/no : 스코프의 캐릭터가 공화귀족인 경우 또는 스코프의 타이틀이 가리키는 홀딩이 공화제의 그것인 경우 yes 가 됩니다.

is_feudal 과 is_republic 의 타이틀 스코프에서의 설명이 조금 애매한데, 봉건제의 경우 수도가 성이고, 공화제의 경우 수도가 도시죠. 그 차이입니다. 스코프의 타이틀의 수도가 성이라면 봉건제적 타이틀로 판단하고, 스코프의 타이틀의 수도가 도시라면 공화제적 타이틀로 판단하게 됩니다. 이게 미묘한 것이, 바로 다음 것하고 굉장히 미묘하게 설명에 차이가 있거든요.

  • is_merchant_republic = yes/no : 스코프의 캐릭터가 공화국 도제이거나, 그 스코프의 타이틀이 공화제 타이틀인 경우에 yes 가 됩니다.

is_republic 과 is_merchant_republic 의 차이가 감이 오시나요? 캐릭터의 경우는 그렇다 치지만, 타이틀 문맥에서의 차이는 저도 정확하게 와 닿지 않습니다. 굳이 차이가 있을 수 있다면, 잘못된 정부 형태 페널티를 받고 있는 경우에 차이가 있을 수 있을까요?

  • is_patrician = yes/no : 스코프의 캐릭터가 공화 귀족 가문의 수장인 경우 yes 가 됩니다. 이 조건문은 캐릭터 문맥에서만 사용합니다. (Fast Event Trigger 로 사용됩니다.)

  • holy_order = yes/no : 스코프의 캐릭터 또는 타이틀이 종교 기사단의 그것인 경우에 yes 가 됩니다.

  • independent = yes/no : 스코프의 캐릭터가 독립군주인 경우 yes 가 됩니다. (위키에는 int 값을 받는다고 되어 있는데, 실제로는 bool 처럼 사용합니다.)

  • temporary = yes/no : 타이틀 스코프에서 사용됩니다. 타이틀 중에는 임시 타이틀들이 있습니다. create_title 명령에서 temporary = yes 를 주어 만드는 타이틀들인데요. 종교반란군 내지는 농민반란군 등의 타이틀들이 이 타입입니다. 이들은 대개 landless 나 rebel 등과 함께 붙어다니곤 해요.

  • is_landless_type_title = yes/no : 타이틀 스코프에서 사용됩니다. 소위 말하는 명목상의 타이틀, 즉 영지가 없는 타이틀을 의미합니다. 영지가 없으니 보통 봉신이 없는 것이 특징이죠.

  • rebel = yes/no : 반란군의 수장 캐릭터 또는 반란군의 타이틀인 경우 yes 가 됩니다.

  • is_primary_type_title = yes/no : 이 타이틀은 반드시 대표 타이틀로 쓰이도록 설정된 경우에 yes 가 됩니다. (종교 수장이나, 기사단, 용병단의 타이틀을 설정할 때, primary = yes 로 설정하여 반드시 대표 타이틀로 쓰이도록 설정했던 것 기억하시나요? 이 플래그가 붙어 있는 타이틀일 때 yes 가 됩니다. 따라서 일반적으로 이 조건문으로 종교수장, 기사단, 용병단 등의 타이틀을 다른 타이틀들과 분리해 볼 수 있게 되죠.)

  • is_tribal_type_title = yes/no : 스코프의 타이틀이 부족정 형태의 타이틀인 경우 yes 가 됩니다.

  • has_crown_law_title = yes/no : 얘는 사실 용도가 뭔지 잘 모르겠어요. 오직 계승법 부분에서만 쓰이는데..

  • is_primary_holder_title = yes/no : 얘도 마찬가지.. 캐릭터가 사용하는 대표 타이틀인지 여부를 확인하는 것 같은데, 계승법의 경우 이게 들어갈 여지가 사실 없다고 생각하거든요. 그런데 이게 no 문맥으로 여러 군데 들어가 있어요. 아무튼 정확한 용도를 모르겠습니다. 일반 이벤트에선 거의 사용되지 않고, CB나 PLOT 등에서 제법 사용되네요. (역시 내가 안 해 본 부분이었어...)

4) 종교 및 문화에 관련된 각종 조건문들

이 항목은 정말로 거의 다 중복이네요.

  • religion_group = 종교 그룹
  • religion = 종교
  • culture_group = 문화 그룹
  • culture = 문화
  • is_reformed_religion = yes/no
  • has_horde_culture = yes/no : 유목민 설정을 가진 문화라면 yes 가 됩니다. 원본에서 이 설정을 가진 문화는 아즈텍과 몽골 뿐입니다.
5) 특정한 법률을 가지고 있는지를 조건으로 하는 경우
  • has_law = 법률 이름 : 특정한 법률을 가지고 있는지를 봅니다. 법률이라면 여러 가지가 있죠. 여기서 보는 계승법 또는 성별법일 수도 있고, 왕권법일 수도 있고 등등.. 법률 이름은 각 법률 디시전 파일을 열어보시면 알 수 있습니다. 계승법과 관련된 부분이다 보니, 이 파일에서의 has_law 의 값은 예외 없이 crown_authority_N (왕권법의 수준, N은 0~4 사이) 를 가지고 있는지를 확인합니다.

왕권법의 경우에는 decisions/crown_laws.txt 파일을 열어보시면 됩니다. 계승법 또는 성별법은 지금 우리가 보고 있는 파일이고요. 그 외의 각종 잡다한(?) 법률들은 모두 decisions/demesne_laws.txt 파일을 열어보시면 그 이름을 확인하실 수 있습니다.

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 답댓글 작성자그러하오 | 작성시간 15.02.25 저는 가신 생성되면 남자들을 추방하고 여자를 같은 수로 데려온 뒤 한 명씩 생기는 남자가신도 여자로 교체되게 했었죠 여성 선거제라 여자만있으면 되니...
  • 작성자Leon Aureus Acentetus | 작성시간 15.03.03 has_crown_law_title 항목은 왕법과 관련된 거 아닌가요? 타이틀 티어는 황제-왕-공-백의 넷으로, 이 중 앞의 둘은 왕법이 있는 타이틀이고 뒤의 둘은 왕법이 없는 타이틀인데, 이걸 확인하는 구문이 아닐까 합니다. 즉, 해당 항목이 yes라면 제위나 왕위를 가지고 있는 거고, 아니라면 제위나 왕위를 갖지 않은 거고..아닐까요;;? 그냥 이름만 보고 생각했을땐요.
  • 답댓글 작성자tacitus 작성자 본인 여부 작성자 | 작성시간 15.03.04 아.. 그런 걸까요? 이 조건문에 대해서는 설명도 없는데다, 사용되는 곳도 두 군데 뿐이라서 맥락을 알 수가 없더라고요.. 다른 곳에선 사용이 안 되다보니 테스트를 해보기도 뭣한..
  • 작성자WhiteCaT | 작성시간 15.06.21 enatic_succession = {
    male_dynasty_opinion = -20
    female_dynasty_opinion = 20

    potential = {
    always = yes
    holder_scope = {
    ai = no
    }
    }
    allow = {
    always=yes
    }
    effect = {
    gender_succ = enatic
    }
    revoke_allowed = {
    always = no
    }
    }

    여성상속을 하기 위해서 말씀하신대로 이렇게 변경해 봤습니다만 이게 맞는건가요?
  • 답댓글 작성자tacitus 작성자 본인 여부 작성자 | 작성시간 15.06.21 플레이어만 쓰도록 하시기 위함이라면, potential = { } 안의 always = no 는 그냥 지우시거나 주석처리 하시고요 (굳이 yes로 바꾸지 마세요.)
    holder_scope = { ai = no } 만 남겨두세요. 다른 부분은 안 건드리셔도 됩니다.
댓글 전체보기

CK 모드 게시판 다른글

현재페이지 1234
맨위로

카페 검색

카페 검색어 입력폼