본문 바로가기
위쳐 3

위쳐 3 모드 | 커뮤니티 패치 - Shared Imports 적용법

by 도토비 2020. 8. 3.

위쳐 3 추천 모드 소개.

자체적으로는 기능이 없는 모든 클래스들의 (모든 속성) 모음입니다. 병합 충돌을 줄이기 위해 다른 모드의 기본 종속성으로 사용됩니다.

커뮤니티 패치 - Shared Imports

이 모드는 자체적으로 기능을 제공하지 않습니다. 이는 클래스 및 속성의 가져오기가 필요한 서로 다른 모드들을 불러올 때, 교차되는 부분으로 인해 발생하는 불필요한 충돌을 피하기 위해 공유되는 기본 종속성(shared base dependency)을 의미합니다.

이 패치는 무엇인가?

순수한 스크립팅 기능 외에도 위쳐 3 스크립트는 (컴파일된) 게임 엔진 기능 및 런타임 객체의 일부에 대한 액세스를 제공합니다. 이러한 익스포트 중 일부는 게임 내 실시간으로 조정할 수 있습니다. 그러나 모든 익스포트 된 엔진 기능/클래스가 바닐라 게임 스크립트에 노출되는 것은 아닙니다.

 

일부 모드는 자체 스크립트에 추가적인 클래스/변수 임포트를 추가합니다. 그러나 대부분의 경우 임포트 된 클래스의 익스포트 된 속성을 모두 임포트 하지는 않습니다. 불행히도 이것은 서로 다른 파일에서 동일하거나 다른 속성 부분을 가져오는 모드 간에 충돌을 일으킵니다.

 

이러한 불필요한 병합 충돌을 피하기 위해 이 모드는 다음의 규칙을 따릅니다.

  • 다른 모드에 대한 종속성이 없으므로 다른 종속성(잠재적 병합 충돌 포함)의 체인을 열지 않고도 다른 모드가 의존할 수 있는 기준 계층을 만듭니다.
  • 이 모드에서 새 클래스를 임포트 하면 해당 속성과 모든 (현재 임포트 되지 않은) 종속 클래스도 완전히 임포트 됩니다.
  • 클래스를 임포트한 바닐라 스크립트의 새로운 속성을 이 모드에서 임포트 하면 현재 임포트 하지 않은 모든 속성도 임포트 됩니다.

다운로드

Community Patch - Shared Imports

 

Community Patch - Shared Imports

Collection of fully imported classes (all attributes) without any functionality on its own. Meant as a baseline dependency for other mods to reduce merge conflicts.

www.nexusmods.com

위쳐 3 모드 - 커뮤니티 패치 - Shared Imports 적용법

설치 순서

이 모드는 GOG 게임 버전 1.30+에서 테스트되었지만 다른 모든 1.30+ 버전 (GOTY, GOG, Steam)에서 작동합니다.

1. 다운로드 한 압축 파일을 위쳐 3 게임 디렉터리에 압축 해제합니다. 위쳐 3 게임 폴더 밑의 mods 폴더에 새로운 modSharedImports 폴더가 만들어져야 합니다.
2. 게임을 실행시켜 설치된 다른 모드와 스크립트 충돌이 있는지 테스트하십시오. 필요한 경우 Script Merger를 사용하여 병합하십시오.

삭제 순서

[위쳐 3 설치 경로]/mods 디렉토리에서 modSharedImports 폴더를 삭제하십시오.

업그레이드 방법

[위쳐 3 설치 경로]/mods 디렉토리에서 modSharedImports 폴더를 삭제하고, 설치 가이드에 설명된 대로 새로 다운로드 한 압축 파일을 위쳐 3 게임 디렉토리에 압축 해제하십시오.

모드 사용자를 위한 참고 사항

이런 종류의 오류가 발생하면:

이미 설치된 다른 모드가 이 모드의 임포트 중 하나를 이미 임포트 했음을 의미합니다. 이 경우 이 모드를 식별하고 (예: [위쳐 3 설치 경로]/mods 폴더의 모든 *.ws 파일에서 오류에 있는 클래스 이름을 검색하여) 모드 작성자에게 문의하십시오. 해당 모드 작성자에게 shared import 모드에 대한 종속성 추가를 정중히 요청하십시오.

 

아래 파일들의 충돌도 마찬가지입니다.

engine/components.ws
engine/environment.ws

이 레벨에서 변동성을 만드는 것은 말이 되지 않으므로, 이 모드의 여러 버전을 제공하지 않습니다!

모드 작성자를위한 참고 사항

현재 이 모드는 다음의 클래스를 임포트 합니다 (목록에는 최상위 레벨만 포함됨).

    • CGameWorld and all its depending classes (e.g. CEnvironmentDefinition)
    • CRagdoll, CSkeleton
    • CFurComponent (e.g. Hairworks parameters)
    • CClothComponent (CApexResource)
    • SBehaviorGraphInstanceSlot
    • CLightComponent
    • CCameraComponent
    • CEntityTemplate
    • CTriggerAreaEnvironmentVisibilityComponent
    • CParticleComponent
    • CAreaEnvironmentComponent
    • CActionpointComponent

또한 engine/components.ws 파일의 모든 클래스에 대해 누락된 속성을 모두 가져옵니다. 여기에는 함수가 포함되지만 해당 파라미터 및 반환 값을 알 수 없습니다. 이것을 알아낸다면 이 모드를 업데이트하기위해 저(모더)에게 연락 바랍니다.

 

이 모드에 대한 종속성을 추가하는 경우 향후 업데이트에서 새 클래스를 가져올 수 있으므로 필요한 최소 버전 정보를 제공해야 합니다. 그러나 모든 업데이트는 이전 버전과 호환될 예정입니다 (즉, 클래스가 제거되지 않고 클래스가 다른 파일로 이동되지 않음을 의미합니다).

 

임포트 할 다른 클래스가 필요하면 저(모더)에게 연락하여 업데이트된 버전의 Shared Import 모드를 사용하십시오.