NPC수정에 대하여
NPC 부분에서 트리거를 정복할 예정입니다.
TriggerID
TriggerType
NPC
QuestID
Conditions
Actions
이에 대한 설명을 해드리도록 하겠습니다.
TriggerID : 번호, 순서대로 올라감.
TriggerType : NPC 그냥 이걸로.. 다른건 테스트 안해봄.
NPC : NPC 이름 (NPC 테이블의 NPC 이름을 사용함)
QuestID : 0으로 해두셈.
Conditions : 첫번째로 중요한 부분
Actions : 두번째로 중요한 부분
맨 마지막 두개를 제외한 나머지들은 설명이 간단합니다. 위에 설명한 바
Conditions 와 Actions 부분에 대해서 설명을 해드리도록 하겠습니다.
엔피시에 필요한 것은 Conditions 부분에 기본적으로 3가지가 필요합니다. (무조건 추가해야함)
Conditions (뒤의 Actions 부분은 ConditionType 부분에 연계되어 액션을 뜻합니다)
ConditionType : AtFirst
// NPC의 위치, NPC의 모습 방향, NPC 옵션등을 설정을 하게끔 만드는 기본 스크립트입니다.
ConditionType : TalkedBy
// NPC의 말하는 것을 의미합니다. 액션에서 NPC 선택창을 띄우는 부분을 설정하는 기본 스크립트 입니다.
ConditionType : AnsweredBy
ScriptID : 100 // NPC 대화 스크립트 100번
AnswerID : 1 // 위의 값의 선택 문 1번
// NPC의 선택창 (말하기) 부분의 답하는 기본 스크립트 입니다.
-
ConditionType : AtFirst 에 알 맞는 Action을 말씀드리겠습니다.
ActionType : SetPosition // NPC의 기본 설정하기
ZoneID : 64 // 맵의 ID번호 입니다.
X : 36 // 맵의 X좌표 입니다.
Y : 228 // 맵의 Y좌표 입니다.
Dir : 1 // NPC의 바라보는 방향입니다. (NPC마다 다름 타 설정 불가능한걸로 암)
ActionType : PrepareShop // NPC 상점 판매 정보 (ShopTemplate)
NPCID : 430 // ShopTemplate의 NPC ID 정보
MarketConditionBuy : 25 // 유저가 아이템을 판매할때의 가격비 (1/4)
MarketConditionSell : 100 // 유저가 아이템을 구매할때의 가격비 (정상)
-
ConditionType : TalkedBy 에 알 맞는 Action을 말씀드리겠습니다.
ActionType : Ask // 말하기 창 (선택 창)
ScriptID : 100 (스크립트 ID 이 부분은 클라이언트 인포의 NPCScript.inf의 번호와 연관 있습니다)
100으로 설정한다면, 클라이언트 NPCScript.inf의 100번을 불러오는거와 같습니다.
-
ConditionType : AnsweredBy 에 알 맞는 Action을 말씀드리겠습니다.
ScriptID : 100 // NPC 대화 스크립트 100번
AnswerID : 1 // 위의 값의 선택 문 1번
ActionType : Heal // 체력을 회복시킵니다.
ActionType : Sell // 아이템을 판매합니다.
ActionType : Buy // 아이템을 구매합니다.
ActionType : QuitDialogue // 대화를 종료합니다.
ActionType : QuitDialogue // 대화를 종료하는 동시에
ActionType : SetResurrectZone // 부활 위치 지정
ZoneID : 64 // 64번 맵으로
ActionType : QuitDialogue // 대화를 종료하는 동시에
ActionType : ActivatePortal // 포탈을 활성화 (맵이동)
ZoneID : 12 // 맵 ID 번호
X : 117 // 맵 X 좌표
Y : 145 // 맵 Y 좌표
ActionType : StashSell // 보관함을 판매하는 액션
ActionType : StashOpen // 보관함을 여는 액션
ActionType : TakeOutGoods // 마켓보관함을 여는 액션
ActionType : SwapAdvancementItem // 승직 아이템 교환 액션
ActionType : SelectBloodBible // 성서를 빌리는 액션
ActionType : ClearBloodBible // 성서를 초기화하는 액션
ActionType : QuitDialogue // 성서 초기화 동시에 대화를 종료 시킴.
위의 액션타입은 꽤나 많습니다. (잘 찾아보시기 바랍니다)
이런식으로 구성되어 있습니다. 조금 더 자세한 이야기를 하자면,
NPCScript.inf 부분에 있는 대화의 선택문이 3가지라고 해봅시다.
그렇다면, Conditions 에 3가지가 더 추가 되야 합니다.
예제를 들어보겠습니다.
스크립트 100번의 선택문
1.치료 하겠나? (힐 액션 사용)
2.페로나로 이동시켜주겠네. (포탈 액션 사용)
3.이만 가보게 (대화 종료 액션 사용)
ConditionType : AnsweredBy
ScriptID : 100
AnswerID : 1
// 스크립트 100번의 선택문 1번의 대한 액션
ActionType : Heal
ConditionType : AnsweredBy
ScriptID : 100
AnswerID : 2
// 스크립트 100번의 선택문 2번의 대한 액션
ActionType : QuitDialogue
ActionType : ActivatePortal
ZoneID : 64
X : 30
Y : 220
ConditionType : AnsweredBy
ScriptID : 100
AnswerID : 3
// 스크립트 100번의 선택문 3번의 대한 액션
ActionType : QuitDialogue
이렇게 간단합니다.
NPC의 위치를 이동하고자 한다면,
ConditionType : AtFirst 의 액션에서 ZoneID와 X와 Y값만 수정해주시면 됩니다.
출처는 예전에 어느 정보공유사이트이고 그곳에서 받은 팁들을 모아뒀다가 다시 공유하는것입니다~

버전1 님의 최근 댓글