Custom NPCs

덤프버전 :

1. 개요
2. 아이템
3. NPC 만들기
3.1. 디스플레이
3.2. 스탯
3.3. AI
3.4. 인벤토리
3.5. 부가기능
3.5.1. 역할
3.5.2. 직업
3.5.3. 대화 설정
3.5.4. 파벌
3.5.5. 대화문
3.5.6. 소리 설정
3.5.7. 밤 설정
3.5.8. Linked
3.5.9. Scenes
3.5.10. Marks
3.6. 글로벌
3.6.1. 은행
3.6.2. 파벌
3.6.3. 대화문
3.6.4. 퀘스트
3.6.5. 텔레포트
3.6.6. 유저 데이터
3.6.7. 제작법
3.6.8. 자연스폰(WIP[뜻])
3.6.9. Linked
4. 스크립트
4.1. 1.7.10에서
4.2. 상위버전
4.3. 공통
4.4. 난독화


1. 개요[편집]


링크
직접 NPC를 만들어 모습이나 대화, 움직임 등을 직접 설정할 수 있는 모드로 주로 맵 제작 등에 쓰이는 모드. 단순히 마을에서 떠들기만 하는 NPC만 만들 수 있는 것이 아니라 몬스터나 보스는 물론이고 의사, 용병 같은 다양한 역할을 가진 NPC도 만들 수 있다.

설정할 수 있는 범위가 무척이나 넓기 때문에 처음에는 NPC 하나 만드는 것도 벅차지만 이는 거꾸로 말하자면 모드 자체가 무척 잘 짜여져 있다는 뜻으로, 어느 정도 익숙해진다면 마인크래프트를 RPG 게임으로 승화시키는 것도 무리가 아닌 모드이다.

영어를 전혀 몰라도 문제없을 정도로 한글화가 되어있지만, 번역이 되지 않은 부분도 상당수 존재하며 번역이 좀 어색한 부분도 존재한다.

일부 실력자 같은 경우는 NPC를 이용해서 월드가드, 월드보호, 유저 스텟, 캐릭터 선택, 유저스킬 등등 여러 가지를 플러그인과 동급으로 만들 정도이다.


2. 아이템[편집]


  • Redstone Block
이상한 사각형이 많은 모양의 블럭. 일정 조건을 설정할 수 있으며 설정한 조건의 맞는 플레이어가 설정 범위 안에 오면 회로를 보낸다.

  • Location Quest Block
안에 검은색 원이 있는 모양의 블럭이다. 퀘스트를 설정할 때 위치 이름을 설정할 수 있다.

  • NPC Wand
짙은 갈색의 괭이 모양의 아이템. 블럭 위에 사용하면 NPC가 소환되며 NPC의 외모, 능력치, 인공지능의 설정이 가능하다. 허공에 대고 사용하면 현재 존재하는 NPC의 목록을 볼 수 있다. 주민에게도 사용할 수 있는데, 주민의 거래 아이템 등을 수정할 수 있다.

  • Mob Cloner
짙은 갈색의 도끼 모양의 아이템. NPC에 대고 사용하면 해당 NPC의 정보를 넣어둘 수 있으며 이후 블록에다 사용하면 정보를 넣어둔 NPC를 복제할 수 있다.

  • Scripter
짙은 갈색의 샵 모양의 아이템. NPC에 대고 사용하면 이상한 창이 뜨는데 주로 전문가들만 쓰는 아이템이다.

  • NPC Pather
짙은 같색의 검 모양의 아이템. NPC에 대고 블럭을 대면 해당 NPC의 이동설정이 가능하다.

  • Mounter
짙은 갈색의 안장 모양의 아이템. 일정한 엔티티를 위해 원하는 엔티티를 태울수있다. 심지어 플레이어도 탈 수 있다(!)

  • Teleporter
짙은 갈색의 깃털 모양의 아이템. 좌클릭하면 보고 있는 블럭 위로 텔레포트를 하고 우클릭하면 원하는 세계로 이동이 가능하다.

  • Carpentry Bench
제작대와 비슷하게 생긴 아이템. 4*4칸짜리 제작대로, 일반 마인크래프트에서 사용할 수 있는 제작법이 아닌 NPC Wand를 통해 만든 제작법만 사용할 수 있다.

  • Mailbox
우체부를 통해 보낸 편지를 볼 수 있다. 두 종류가 있지만 용도는 동일하다.

그 밖에도 하위 버전은 상관없으나 1.11.2 이후부터는 기존에 커스텀npc 모드에 같이 있었던 여러 무기나 소품들이 별개의 모드로 분리되었다. 링크

3. NPC 만들기[편집]



3.1. 디스플레이[편집]


파일:커스텀NPC디스플레이.png
  • 이름
말 그대로 NPC의 이름.

  • 제목
NPC의 이름 밑에 부가적으로 붙여질 칭호. 아이템 가게 NPC로 만들 생각이라면 '상인' 이라 써놓으면 되는 식이다.

  • 모델
NPC의 외형을 설정할 수 있다. Entity 항목에서는 NPC의 기본적인 형태를 정할 수 있다. 기본적으로 마인크래프트에 나오는 모든 몬스터의 외형 중 하나를 선택할 수 있다. 여담으로 외형 중에 포니도 있다.

Parts 항목에서는 수염, 치마, 뿔, 꼬리, 귀 같은 부가 요소를 설정할 수 있다. 다만 일반적인 스티브 모습의 NPC만 설정할 수 있으니 주의.

Scale 항목에서는 몸의 각 부위의 크기를 최대 50%까지 키우거나 줄일 수 있다. 마찬가지로 스티브 모습의 NPC만 설정 가능.

  • 텍스쳐
NPC의 스킨을 고를 수 있다. 스티브 모습의 NPC가 가장 많은 스킨을 가지고 있긴 하지만 그 외의 모습도 어느 정도 스킨을 가지고 있다. 플레이어 이름으로도 해당 플레이어의 스킨을 사용할 수도 있다. 스킨 폴더에 스킨 파일을 넣어서 자기가 만든 스킨을 쓸 수 있다.

  • 망토
말 그대로 망토. 스티브 이외의 모습을 가진 NPC도 설정은 가능하지만, 정상적으로 적용되는 건 스티브 모습의 NPC 뿐이다.

  • 오버레이
눈 효과를 설정할 수 있다. 마찬가지로 정상적으로 적용되는 건 스티브 모습의 NPC 뿐.

  • 생활 애니메이션
팔이 약간씩 움직이는 것.

  • 보임
'예'는 누구나 볼 수 있으며, '부분적'은 반투명하게 보이며, '아니요'는 NPC Wand를 가지고 있는 플레이어만 반투명하게 볼 수 있다.

  • 보스 체력 바
엔더 드래곤이나 위더처럼 화면 상단에 체력 바를 보여줄 것인지의 여부를 설정할 수 있다. 옆의 색상은 체력 바의 색깔을 설정하는 것이다.

3.2. 스탯[편집]


파일:커스텀NPC스탯.png

  • 체력
말 그대로 HP. 기본 체력은 20으로 되어있으며 플레이어 및 좀비나 스켈레톤 같은 몬스터들과 동급이다. 최대 체력은 2,147,483,647이다.

  • 어그로 범위
적을 탐지할 수 있는 범위를 뜻한다.

  • 생명체 유형
일반, 언데드, 절지동물 중 하나를 선택할 수 있다. 언데드는 좀비나 스켈레톤 등과 같은 판정, 절지동물은 거미, 좀벌레 등과 같은 판정이다.

  • 리스폰
죽었을 때 리스폰을 할 것인지 설정할 수 있다. 예는 시간 상관 없이 리스폰, 낮은 낮에만 리스폰, 밤은 밤에만 리스폰이며 아니요는 리스폰하지 않는다. 시간은 초 단위로 기본 설정은 20이다. 시체 숨기기는 NPC가 죽었을 때 시체를 그대로 둘 것인지 아니면 일반 마인크래프트처럼 사라지게 할 것인지 설정하는 것이다.

  • 근접 옵션
근접 공격을 설정할 수 있다. 근접 전투 강도는 근접 공격의 피해량을 뜻하며, 1당 하트 반 칸의 피해를 입힌다. 근접공격 범위는 공격이 어느 정도 거리에 있어야 닿는지에 대한 것으로 최대치가 30인데 이쯤 되면 누가 봐도 근접 공격이라 할 수가 없는 수준이다... 근접 공격 속도는 숫자가 낮을수록 공격 속도가 빨라진다. 밀치기는 공격 시 적을 얼마나 멀리 날려버리는가에 대한 것으로 최대치는 4이다. 효과는 공격 시 입힐 부가 효과에 대한 것으로 순서대로 불, 독, 허기, 나약함, 구속, 멀미, 실명, 부패의 효과 중 하나를 고를 수 있다.

  • 원거리 옵션
원거리 공격을 설정할 수 있다. 정확도는 말 그대로 얼마나 잘 맞출 수 있는가에 대한 것이다. 옆의 발사횟수는 한 번에 얼마나 많은 양의 투사체를 발사할 것인가에 대한 것으로 간단히 말해 산탄총으로 비유할 수 있다. 정확도가 높을 수록 집탄률이 늘어나며 정확도를 100으로 해놓을 경우 사실상 투사체 하나만 발사하는 수준이 되므로 주의. 최대치는 10이다. 최소 딜레이와 최대 딜레이는 원거리 공격의 속도를 뜻한다. 발사 속도는 몇 초에 1번씩 투사체를 발사할 것인가를 뜻한다. 근접공격 범위는 얼마나 가까이 다가가야 근접 공격을 하느냐에 대한 설정으로 0으로 설정하면 무조건 원거리 공격만 하게 된다. FireSound는 투사체를 발사할 때의 소리, HitSound는 공격이 명중했을 때 나는 소리, GroundSound는 공격이 빗나가 블럭에 맞았을 때 나는 소리를 뜻한다.모드를 통해 추가되는 효과음들도 적용할수 있다.

  • 발사체 유형
원거리 옵션이 원거리 공격의 범위나 투사체의 갯수 등을 설정하는 거라면 여기서는 투사체의 위력을 설정할 수 있다. 힘은 근접전투 강도와 마찬가지로 숫자 1당 하트 반 칸의 피해를 입힌다. 크기는 투사체의 크기를 뜻하며, 속도는 투사체가 날아가는 속도, 밀어내기는 투사체에 맞은 적을 얼마나 멀리 날려버리는가에 대한 것으로 최대치는 4이다. 중력은 투사체가 총알처럼 직선으로 날아가냐 중력에 영향을 받아 곡선으로 날아가냐에 대한 것으로 아니요로 했을 경우 일정과 가속 중 하나를 고를 수 있는데 가속을 고르면 투사체가 점점 빨라진다. 폭발은 투사체가 닿았을 때 폭발이 일어나는 것으로 폭발의 강도도 설정할 수 있다. 의외로 폭발 피해는 없고 블럭만 파괴하지만 폭발에 의해 공중에 떠올랐을 경우에는 낙하 피해를 추가로 입게 된다. 효과는 근접 옵션의 효과와 동일하니 참고.

  • 저항
특정 피해를 얼마나 적게 입느냐에 대한 것으로 100%로 설정할 경우 해당 피해에 대해서는 무적이 되며, -100%로 설정할 경우 해당 피해를 2배 더 많이 입게 되는 식이다.

  • 화재 면역
불에 타느냐 타지 않느냐에 대한 설정이다.

  • 익사
물에 장시간 잠겨있을 경우 피해를 입느냐 입지 않느냐에 대한 설정이다.

  • 낮에 불탐
언데드 몬스터처럼 해가 뜨면 불에 타느냐 타지 않느냐에 대한 설정이다. 생명체 유형을 언데드로 설정한 것하고는 무관하다.

  • 낙하 대미지
높은 곳에 떨어졌을 때 피해를 입느냐 입지 않느냐에 대한 설정이다.

  • PotionImmune
포션 효과에 영향을 받느냐 받지 않느냐에 대한 설정이다.

  • 거미줄 영향
거미줄에 의해 속도가 느려지냐 느려지지 않느냐에 대한 설정이다.

  • 체력 리젠
전투 상황에서 벗어났을 때 체력이 얼마나 회복되느냐에 대한 설정이다.
0.1초에 100씩 회복하는것도 가능하다
  • 전투 중 체력 리젠
전투 중인 상황에서 체력이 얼마나 회복되느냐에 대한 설정이다.


3.3. AI[편집]


파일:커스텀NPCAI.png

  • 적 발견시
적을 만났을 때 어떻게 행동하냐에 대한 설정이다. 보복은 공격, 혼란과 후퇴는 둘 다 도망인데 혼란은 마구잡이로 도망간다. 무반응은 말 그대로 아무 반응도 보이지 않는다. 보복으로 설정했을 때에만 설정할 수 있는 것이 존재한다.

  • 물을 피함
물을 피해서 움직이냐에 대한 설정이다.

  • 문 상호작용
문을 봤을 때 어떻게 행동하냐에 대한 설정이다. '부수다'로 설정 시 좀비처럼 문을 부수며, 열기로 설정 시 마을 주민처럼 열고 닫을 수 있다.

  • 제자리로 돌아옴
특정 행동을 마친 이후 자신이 원래 있던 자리, 정확히는 자신이 스폰된 자리로 돌아올 것인가에 대한 설정이다. 아니요로 설정시 굳이 원래 자리로 돌아가지 않고 자유롭게 돌아다닌다.

  • 수영 가능
물 위에서 이동이 가능하냐에 대한 설정이다.

  • 대상에게 도약
'적 발견 시'를 '보복'으로 설정했을 때만 설정할 수 있다. 적에게 점프하면서 다가오느냐에 대한 설정이다.

  • 선호 쉼터
평상시에 어느 장소를 선호하는지에 대한 설정이다. 햇빛이나 어둠 중 하나를 설정할 수 있으며 어둠으로 설정 시 낮이 되면 좀비나 스켈레톤처럼 그늘로 이동한다.

  • 대상 고정

  • Attack Invisible

  • 전술 변경
돌진 - 무작정 달려들어 공격한다.
회피 - 공격을 슬쩍 피하는 방식으로 움직이며 공격한다.
포위 - 적을 둘러싸면서 공격한다.
치고빠지기 - 공격하다가 슬쩍 도망간다.
매복 - 숨어있다가 적이 가까이 오면 달려들어 공격한다.
은밀히접근 - 몰래 적을 따라가다가 어느 정도 가까워지면 공격한다.

  • 이동 설정
Moving type은 NPC가 제자리에 있느냐, 마구잡이로 돌아다니느냐, 정해진 경로로 움직이느냐를 설정할 수 있으며 제자리로 설정해도 적이 근처에 있으면 다가가서 공격한다. 밑에는 Ground라 쓰여진 버튼이 있는데 누르면 Flying으로 바뀌어 공중을 날아다닐 수 있게 된다. Animation은 NPC의 자세를 변경하는데, 일반은 그냥 가만히 서있는 모습이며 Sitting은 앉아있는 자세, Lying은 누운 자세, Hugging은 팔을 쭉 뻗은 자세, Sneaking은 허리를 구부린 자세, Dancing은 머리를 흔들며 춤추는 자세, Aiming은 무기로 적을 조준하는 자세, Crawling은 바닥에 엎드린 자세이다. Rotation은 몸을 어떻게 회전하냐에 대한 것으로 Body는 자유롭게 몸을 돌릴 수 있으며, Manual은 특정 방향을 설정해 그곳만 바라보게 하며, Stalking은 플레이어가 근처에 오면 플레이어 쪽을 응시하도록, Head는 Manual과 동일하지만 고개는 돌릴 수 있다. Manual이나 Head로 설정해도 말을 걸면 잠시 플레이어가 있는 쪽을 바라보지만 플레이어가 멀리 떨어지면 금새 다시 정해진 방향을 보게 된다. Moving path로 설정하면 별도의 아이템인 npc pather가 필요하며 해당 npc를 누르고 특정 위치를 누르면 npc가 그곳으로 이동한다. 여러 곳을 찍으면 모든 위치를 순차적으로 이동하며, 기본적으로 마지막 지점까지 도달하면 시작 지점으로 되돌아오지만 거리가 너무 멀면 동선이 꼬이기도 한다. 역행 설정을 통해 순차적으로 다시 지점을 돌게 할 수 있다. 응용하면 다양한 방면으로 써먹을 수 있는 유용한 기능이다.

3.4. 인벤토리[편집]


파일:커스텀NPC인벤토리.png
어?
NPC 모습의 양옆에 있는 장비 창에는 자유롭게 방어구나 무기를 넣어둘 수 있다. 방어구나 무기를 넣어뒀다고 추가로 강해지지는 않으니 참고. 방패 칸에는 굳이 방패를 넣지 않아도 되므로 칼을 두 개 줘서 이도류를 구사할 수 있다. 물론 상술했듯이 외형 빼고는 아무 의미 없다. 화살 칸은 원거리 공격에서 발사될 투사체의 모습을 정하는 것으로 이 칸이 비어 있으면 NPC가 원거리 공격을 하지 못하니 원거리 공격을 하는 NPC를 만들고 싶다면 꼭 이 칸에 무언가를 넣어줘야 한다.[1]

최소 경험치와 최대 경험치는 해당 NPC를 죽였을 때 얻을 수 있는 경험치를 뜻한다. 돼지, 소 같은 동물들은 1~3을 주고 몬스터들은 5를 주며 엔더드래곤은 12000을 주니 참고.

NPC 인벤토리는 해당 NPC를 죽였을 때 드롭할 아이템으로 최대 9종류까지 설정할 수 있으며 확률을 100%로 했을 경우 NPC를 죽일 때마다 무조건 아이템을 주게 된다. 경험치 설정 밑에 일반이라 쓰여있는 버튼이 보일 텐데, 이를 누르면 Auto Pickup으로 변경되어 드롭 아이템이 땅에 떨어지는 것이 아니라 플레이어한테 즉시 들어오게 된다. [2]


3.5. 부가기능[편집]


파일:커스텀NPC부가기능.png


3.5.1. 역할[편집]


  • 역할 없음
말 그대로 역할이 없는 NPC.

  • 상인
특정 아이템을 주면 다른 아이템으로 교환해주는 NPC.

파일:커스텀NPC상인.png

예를 들어서 이렇게 설정했을 경우 뼈다귀를 10개 주면 돌 검을 1개 받을 수 있게 된다. 옆에 있는 손상 무시는 내구도가 있는 아이템을 주고 다른 아이템을 받는 거래를 할 때 내구도가 하나도 닳지 않아야만 거래에 쓸 수 있느냐, 내구도가 닳은 것도 거래에 쓸 수 있느냐에 대한 설정이고, Ignore NBT는 NBT가 들어간 아이템도 취급하는가에 대한 설정이다.

  • 수행원
대가를 주면 플레이어를 따라오는 NPC.

파일:커스텀NPC수행원.png

이렇게 설정했을 경우 나무 검을 주면 하루, 돌 검을 주면 3일, 철 검을 주면 5일 동안 플레이어를 따라다니게 된다.

윗부분의 대사는 고용에 성공했을 때의 대사이며 그 밑에 있는 대사는 고용 기간이 끝났을 때의 대사이다. 물론 대사는 자유롭게 변경할 수 있다.

고용된 NPC를 마우스 오른쪽으로 클릭하면 남은 체력과 남은 고용 기간을 볼 수 있으며 기간을 연장할 수 있다. 또 따라다니게 할 것인지 대기시켜둘 것인지도 정할 수 있다.

  • 은행
은행의 역할을 하는 NPC. 다만 설정은 글로벌에서 해야 한다.

  • 텔레포터
말 그대로 텔레포터. 두 개 이상의 NPC가 필요한데, 두 NPC 모두 부가기능 → 텔레포터 → 편집 순서로 들어간 후 Default를 누른 후 NPC에게 말을 걸면 default name_이란 것이 나올 텐데 이걸 선택한 후 이동을 누르면 다른 텔레포터 NPC 쪽으로 이동된다. 텔레포터의 이름은 양측 NPC 모두 변경하지 않으면 적용되지 않는다.

  • 우체부
말을 걸면 편지나 아이템을 보낼 수 있으며 편지는 Mailbox에 들어간다. 당연하지만 편지는 플레이어한테만 보낼 수 있다.

  • Companion(WIP[뜻])
Soulstone Empty 로 다시 소환한 뒤 플레이어를 따라다니면서 여러 가지 늑대처럼 적을 공격할 수 있다.
그리고 설정에 따라 인벤토리 창을 설정할수 있으면 일정 시간 마다 먹이를 줘야 한다.

  • 대화
특정 조건을 충족하면 적어놓은 대화를 시작한다. 여러 NPC끼리 서로 대화하는 상황도 연출 가능.


3.5.2. 직업[편집]


  • 직업 없음
말 그대로 직업이 없는 NPC.

  • 바드
소리를 재생한다. '음악ON 거리'는 음악을 재생하기 시작하는 거리, '음악OFF 거리'는 음악을 멈추는 거리이다.

  • 힐러
가까이 다가가면 치료를 해준다.

  • 가드
특정 몬스터를 공격한다. 모드를 통해 추가되는 몬스터도 설정할 수 있다. Attack Animals, Attack Monsters, Attack Creepers 버튼을 통해 공격할 몬스터를 빠르게 설정할 수 있다.

  • 기부자
멀리 있다가 근접하면 아이템을 기부해준다.

파일:커스텀NPC기부자.png

맨 위의 버튼은 아이템을 어떤 방식으로 주느냐에 대한 설정으로 Random Item은 설정한 아이템 중 무작위로 하나를 주며, All Items는 설정한 모든 아이템을 준다. Give Not Owned Items는 설정한 모든 아이템을 가지고 있지 않을 때만 설정한 모든 아이템을 주며, 'Give When Doesn't Own Any'는 아무 것도 가지고 있지 않을 때 설정한 모든 아이템을 준다. Chained는 설정한 아이템을 제일 왼쪽부터 차례대로 준다.

그 밑의 버튼은 아이템을 주는 시간에 대한 설정으로 Timer는 밑의 Cooldown 만큼의 시간(초)이 지나면 주며, Give Only Once는 플레이어당 1회만 주며 Daily는 마인크래프트 시간 기준으로 1일마다 한 번씩 준다.

  • 수행원
역할에 있는 수행원과 이름은 같지만, 플레이어가 아니라 NPC를 따라간다.

  • 소환사
NPC를 소환한다. 자동으로 소멸할 것인지 유지할지 설정할 수 있다.

  • 대화

  • 청크 로더
청크를 로딩한다.

  • Puppet
NPC의 자세를 마음대로 설정할 수 있다.

  • Builder
빌더 블록이란 것을 이용해서 우클릭한 다음 저장된 건축물을 '프리뷰'라는 것을 이용해서 미리 본 다음 예를 누르면 직업이 빌더인 NPC가 집을 짓는다. 또는 카피 블럭을 이용해 자신의 건축물을 짓게 하는 것도 가능하다. 다만 혼자 하면 오래 걸리니 다수의 빌더 NPC를 사용하는 것이 좋다.

  • Farmer
근처에 있는 농작물을 수확하고 다시 씨를 뿌리게 할 수 있으며, 근처 상자에 수확한 농작물을 넣도록 설정할 수 있다.

3.5.3. 대화 설정[편집]


  • World Lines
근처에 있을 때 말풍선을 띄우며 무작위로 하는 말.

  • Attack Lines
적을 감지했을 때 하는 말.

  • Interact Lines
말을 걸었을 때 하는 말.

  • Killed Lines
죽었을 때 하는 말.

  • Kill Lines
죽였을 때 하는 말.

맨 밑의 Random Lines를 '예'로 설정하면 설정한 말 중 무작위의 말을 내뱉는다.


3.5.4. 파벌[편집]


기본적으로 플레이어를 공격하며 이름이 빨간색으로 표시되는 Aggressive, 플레이어에게 우호적이며 이름이 초록색으로 표시되는 Friendly, 먼저 공격받기 전까지는 플레이어에게 아무 영향도 끼치지 않으며 이름이 노란색으로 표시되는 Neutral로 총 세 종류의 파벌이 존재하며 이외에도 다른 파벌을 더 추가할수있다.

적대 파벌 공격을 예로 설정할 경우 Aggressive는 Friendly를, Friendly는 Aggressive를 공격하게 되며 같은 파벌 도움을 예로 설정하면 적대파벌 공격을 설정하지 않아도 같은 파벌이 공격을 시작하면 뒤따라 공격을 하게 된다.

사망 시 영향력은 해당 NPC를 죽였을 때 각 파벌들이 플레이어를 보는 시선에 대한 것이다. 자세한 것은 글로벌 - 파벌 참조.


3.5.5. 대화문[편집]




3.5.6. 소리 설정[편집]




3.5.7. 밤 설정[편집]



밤이 되면 NPC가 해당 설정으로 재설정 되고 아침이 되면 다시 원래대로 돌아오는 기능이다.

3.5.8. Linked[편집]


NPC끼리 연동을 할 수 있게 해준다. 일단 Linked 참조. 그룹을 만들고 NPC를 해당 그룹에 넣을 수 있다.
이 그룹에 있는 NPC는 역할과 스크립트를 제외한 모든 정보를 같게 만들 수 있다.


3.5.9. Scenes[편집]




3.5.10. Marks[편집]




3.6. 글로벌[편집]


글로벌은 NPC 하나를 설정하는 것이 아니라 광범위하게 영향이 가는 내용을 설정하는 것이다.


3.6.1. 은행[편집]




3.6.2. 파벌[편집]


파일:커스텀NPC파벌.png

이름은 해당 파벌의 이름을 뜻하며 색상은 해당 파벌에 해당하는 NPC의 이름이 어떤 색상으로 표시되는지를 말한다.

영향력은 플레이어와 파벌 간의 관계도 같은 것인데, Aggressive 같은 경우 기본 영향력은 0, 중립으로 가기 위한 영향력은 500, 친밀로 가기 위한 영향력은 1500이 필요한 식이다.

몬스터에게 공격받음은 몬스터에게 공격을 받는지에 대한 설정이다.

적대 파벌은 서로 싸우게 될 파벌을 설정하는 것으로 하나도 설정하지 않아도 되는 반면, 존재하는 다른 모든 파벌과 적대적인 막장 파벌로 만들 수도 있다.


3.6.3. 대화문[편집]



NPC의 대화문을 설정하다 설정에 따라 퀘스트에 레벨 제한 또는 역할 사용의 레벨 제한을 걸 수도 있다.
대부분 퀘스트를 주기 위해 설정한다.

추가를 누른 후 생긴 New를 탭 한 뒤 우측의 대화문을 탭 하여 New에 해당하는 탭으로 이동한다. 이곳에서 추가를 눌러 대화들을 생성할 수 있다.
추가된 New를 탭 하면 제목, 대화 텍스트, 가능성 등의 옵션이 나타나는데, 이를 통해 대화를 설정할 수 있다.
-대화 텍스트 : 이름 그대로 NPC의 대사를 입력하는 창이다.
-가능성 설정 :
-파벌 옵션 :
-대화 옵션 : 플레이어의 대답이나 선택지를 설정하는 탭이다. 제목 창에 대사를 적고 옵션 타입을 통해 해당 대사에 대한 상호작용을 할 수 있다.
-소리 선택 :


3.6.4. 퀘스트[편집]



커스텀 NPC에 퀘스트를 만드는데 사용된다.
대부분 대화문과 연동해서 사용하지만 명령어로도 설정할 수 있다.

/noppes quest start (플레이어) (퀘스트 번호) - 플레이어에게 강제로 퀘스트을 준다.

/noppes quest finish (플레이어) (퀘스트번호) - 퀘스트를 강제로 완료한다.[3]

/noppes quest stop (플레이어) (퀘스트번호) - 퀘스트를 강제로 종료시킨다.[4]

/noppes quest remove (플레이어) (퀘스트번호) - 퀘스트을 초기화한다.[5]

여기에서 퀘스트 번호는 퀘스트 이름을 설정하는 화면 옆에 적혀 있다. ID라고 적혀 있는 것 밑에 숫자를 찾을 수 있다.


3.6.5. 텔레포트[편집]


부가 기능으로 만들 텔레포트를 삭제하거나 또는 다른 텔레포트 만들 때 쓰인다.


3.6.6. 유저 데이터[편집]



여기에서는 유저 데이터를 볼 수 있다. 일단 원하는 유저의 닉네임을 클릭 한 뒤 옆에 있는 화면으로 유저 데이터를 삭제할 수 있다.
Quest Data는 유저의 퀘스트 데이터를 볼수 있다.
Dialog Data는 유저의 대화 데이터를 볼수 있다.
Transport Data는 유저의 텔레포트 데이터를 볼수 있다.
Bank Data는 유저의 은행 데이터를 볼수 있다.
Faction Data는 유저의 파벌 데이터를 볼수 있다.


3.6.7. 제작법[편집]


Carpentry Bench에서 사용할 수 있는 제작법을 만들 수 있다. 글로벌 버튼을 누르면 일반 제작대에서 사용할 수 있는 제작법도 만들 수 있다.
1.12.2는 안된다


3.6.8. 자연스폰(WIP[뜻])[편집]


개인으로 저장한 NPC를 일정 바이옴에 자연 리스폰하게 만들 수 있다. 아직 작업중이라고는 하지만 블럭에 껴서 스폰되는 문제를 제외하고는 완벽하니, 만약 야생을 더 편하게 혹은 더 하드코어하게 즐기고 싶은 사람들은 여러 친밀 혹은 적대적 NPC들을 추가해서 자연스폰 하도록 해 보자.
참고로 여기에 써져 있는 것 중 '스폰확률' 비슷한 뉘앙스의, 경우의 수 조절하는 막대기가 있다. 그 값이 높을수록 청크에 분마다 스폰될 확률이 높아지며, 낮을수록 분마다 스폰될 확률이 낮아진다. 0으로 하면 아예 스폰되지 않으며, 100으로 하면 여타 동물들이나 밤에 스폰되는 몹 수와 비슷한 젠 량을 가지게 된다.

3.6.9. Linked[편집]


이 기능은 NPC끼리 연동하는 그룹을 설정하는 기능이다. 여기에서 추가 버튼을 눌러서 원하는 이름의 그룹을 만들 수 있다.


4. 스크립트[편집]


스크립트는 커스텀 NPC에 여러가지 기능을 확장해주는 기능이다.
이 기능을 사용하기 위해서는

C:\Program Files (x86)\Java\jdk1.8.0_151\jre\lib\ext

에 있는 nashorn 파일을 모드 파일에 넣어주어야 한다.
여러 가지 스크립트가 있으면 주로 자바스크립트을 쓰고 메소드(Method)는 여기에서 원하는 버전 관련 스크립트가 있다.
버전마다 사용되는 방식이 다르니 참고할 것.



4.1. 1.7.10에서[편집]


1.7.10에서는 스크립터로 원하는 NPC를 우클릭하면 창이 뜨는데 그 창에서 '아니요'를 클릭해서 '예'로 수정할 수 있다. 그리고 Scripts를 클릭하면 다른창이 뜨는데, 그 창에서 스크립트를 쓰면 된다.

일단 이벤트와 이벤트 취소 여부를 알아보자.

초기 NPC가 완드 또는 스크립터로 다시 설정될 때 또는 다시 발동될 때이다.
10 tick[6] 단위로 업데이트한다.

상호작용 - NPC를 우클릭하면 작동된다. (취소 가능)
대화 - 대화문이 열리면 작동된다.
데미지 - NPC가 데미지 입을대마다 작동된다. (취소 가능)
사망 - NPC가 죽을 때 작동된다.
공격 - NPC가 공격할대 마다 작동된다. (취소 가능)
대상 - NPC가 공격할 대상을 찾을대 마다 작동된다. (취소 가능)
Colide - NPC가 엔티티와 붙은면 발동된다.
Kills - NPC가 아무 몹을 죽이면 발동된다.
Dialog Closed - 대화문이 끝나면 발동된다.

1.7.10 까지에서는 원하는 이벤트에 자기가 원하는 메소드를 넣으면 된다.
ex) npc.executeCommand("kill @a");


4.2. 상위버전 [편집]


상위버전 에서는 스크립터로 원하는 NPC 을 우클릭하면 창이 뜨는데 그 창에서 '아니요'를 클릭해서 '예' 로 수정한다. 그리고 위에 있는 + 버튼을 눌러서 1번 창을 만들고 그 안에 스크립트를 작성하면 된다.

상위버전 에서는 1.7.10 이하에서 다른게 이벤트가 지정 되어 있는게 아니라서 특정 메소드를 사용하지 않고도 var같은 변수를 저장할수 있다.1.8 이상에서 스크립트를 쓰는 방법은

function 이벤트(event){

스크립트

}


이런 형식으로 만들면 된다.
이벤트는
npc 기준은
init : NPC가 완드 또는 스크립터 로 다시 설정할 때 또는 다시 살아날때 발동된다.
tick: 10 tick[7] 단위로 발동된다.
interact: NPC를 우클릭하면 작동된다. (취소 가능)
dialog: 대화문이 뜨면 실행된다.
dialog_option: 대화문이 끝날 때마다 작동된다.
damaged: 대미지를 입으면 발동된다.
meleeAttack: 근접 공격을 하면 발동된다.
rangedLaunched: 원거리 공격을 하면 발동된다.
target: NPC가 적을 감지할 때 발동된다.
targetLost: NPC가 적을 놓치면 발동된다.
died: NPC가 죽으면 발동된다.
kill: NPC가 적을 죽일 때 발동된다.
role: 직업 일을 할 때 발동된다.
은행: 창고를 잠금해제 했을 때 또는 업그레이드 했을 때 발동된다.
용병: NPC를 고용했을때 또는 고용이 끝날 때 발동한다.
상인: 교환 또는 교환에 실패했을 때 발동한다.
텔레포트: 텔레포트가 잠금 해제되거나 이용했을때 발동된다.
cillide: NPC가 엔티티(몹/플레이어)와 붙으면 발동된다.
timer: 타이머가 끝날 때 발동된다.

스크립디 문 또는 스크립디 블럭 기준
init : 스크립트로 다시설정 할대 발동된다.
tick: 0.5초마다 발동된다.
interact: 우클릭하면 발동된다.
redstone : 블럭에 전기 오면 발동된다.
doorToggle : 스크립디 문 에서만 적용 되면 문이 열리거나 닫치면 발동된다.
broken : 블럭이 파괴 되면 발동 된다.
rainFilled : 비 내리면 발동 된다.
neighborChanged : 주변에 블럭에 변동이 생기면 발동된다.
clicked : 블럭을 좌클릭 하면 발동된다.
harvested : 플레이어 가 블럭을 파괴 하면 발동된다.
collide : 엔티티가 블럭과 충돌하면 발동된다.
timer: 타이머가 끝날 때 발동된다.
정도가 있다. 예시로;

function tick(event){

event.npc.executeCommand("kill @a")

}

이렇게 하면 된다.


4.3. 공통[편집]


커스텀 NPC는 주로 자바 스크립트로 되어있다.
for 와 if 같은 ECMA 와 같이 기존에 있는 문법을 사용할 수 있다.
Math.floor(값) - 절하
Math.ceil(값) - 절상
Math.cos/sin/tan(라디안) - 삼각함수
Math.PI - 파이π값을 불러옵니다. ()를 쓰지 않습니다.
Math.max(값1, 값2 ...) - 최대값 반환 ex)Math.max(1, 2, 3) = 3
Math.min(값1, 값2 ...) - 최하값 반환 같음
Math.sqrt(값) - 평방근,루트값
Math.pow(값, 지수) - 거듭제곱
Math.random() 0 ~ 0.99999... 범위의 실수 반환
Math.floor(값) - 소수점 버림

변수는 주로 var로 쓴다.
배열의 예시로는 다음과 같다.

var a=[0 ]


2차원 배열은

var a=[ [ ],[ ] ]

a[ 0 ][ 0 ]=1

a[1][0]=2

a[0][1]=3

이렇게 하면 된다.


4.4. 난독화[편집]


커스텀 NPC 난독화 같은경우는 대부분 MCEntity 또는 MCWorld로 실행 시킨다.
getMCEntity().field_70758_at : 엔티티가 바라보고있는 방향구함
getMCEntity().field_70759_as : 엔티티 가 바라보고있는 방향 구함(위에 있는것과 차이를 몰라서 2개 모두 서술)
getMCEntity().field_70125_A : 엔티티가 바라보고있는 방향 y축을 구함
Java.type("net.minecraft.util.AxisAlignedBB").func_72330_a(x1,y1,z1,x2,y2,z2) :x1 y1 z1 에서부터 x2 y2 z2 의 데이터 값을 구함
getMCWorld().func_72839_b(npc.getMCEntity(), func_72330_a로 구한값); : func_72330_a로 구한값을 MCEntity 로 반환함(배열)
getMCEntity().func_70107_b : 엔티티룰 텔레포트한다.
getMCEntity().field_70165_t : 엔티티 의 x 값을 반환함
getMCEntity().field_70163_u : 엔티티의 y 값을 반환함
getMCEntity().field_70161_v : 엔티티 의 z 값을 반환함
getMCEntity().func_70013_c() : 엔티티가 현재 있는곳의 밝기를 반환함
getMCEntity().func_110138_aP() : 엔티티의 최대체력을 반환함
getMCEntity().func_110143_aJ() : 엔티티의 현재 체력을 반환함
getMCEntity().func_70617_f_() :엔티티 가 사다리에 있으면 true를 반환하고, 그렇지 않으면 false로 반환한다.


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-10-23 00:18:34에 나무위키 Custom NPCs 문서에서 가져왔습니다.

[뜻] A B C Work In Progress. 작업중인 것을 뜻한다.[1] 물론 스크립트라는 기능을 사용하면 해당 칸에 무언가를 안 넣어도 원거리 공격이 가능하다.[2] 플레이어의 몸 중심부에 드롭되는 것이므로 플레이어가 너무 빠르게 움직이고 있다면 경험치 등은 먹어지지 않을 수도 있다.[3] 단 보상은 받지 못한다.[4] 이 경우 해당 퀘스트를 다시 받을 수 있다.[5] 완료된 퀘스트라면 다시 받을 수 있다.[6] 약 0.5초 정도.[7] 약 0.5초