(정보) 프리캐스트에 스킬 추가, 수정, 응용 방법
프리캐스트에 스킬을 추가해야 되는 문제가 생겨 문제를 해결하면서 알아낸 정보입니다.
관련 내용을 검색해봤더니 자세한 내용이 없는 것 같아 공유합니다.
※ 길잡이에 기본적으로 설정된 프리캐스트들 (모든 클래스의 케릭터이니 프리캐스트 부분 참고)은 케릭터 이니 수정만으로 설정이 가능하나 그 외의 기본적으로 설정되지 않은 새로운 스킬을 프리캐스트에 추가하려면 맨 아래의 추가 내용처럼 스크립트를 추가해야 합니다.
1. 길잡이를 실행해 프리캐스트에 스킬을 추가하고자 하는 케릭터 이니를 아래와 같이 엽니다. (예시는 바바)
위 스샷은 바바 케릭터 이니에 기본적으로 설정된 스킬들 입니다.
2. D2nt 폴더 -> scripts 폴더 -> 엔티봇길잡이 폴더 -> 캐릭터이니 폴더 안의 수정하고자 하는 진입점 폴더 내 케릭터이니.ntl 파일을 메모장으로 연 후 아래 스샷 부분을 찾습니다.
위 스샷의 빨간 네모 부분이 프리캐스트 부분입니다. 위가 이동 전 프리캐스팅이고 아래가 이동 중 프리캐스트입니다.
3. 이동 전 혹은 이동 중 프리캐스트 부분을 아래 스샷과 같이 수정합니다.
(중요) : [1,155,[0,6],5,false] 구문의 두 번째 부분인 155 부분이 스킬 번호 입니다. 추가할 스킬의 다른 부분은 그대로 냅두고 스킬 번호 부분만 변경해 추가하세요. 스킬 번호는 D2nt 폴더 -> sdk 폴더 -> 스킬_번호 파일에 다 나와 있습니다.
(예시1) : 이동 전 프리캐스트에 배틀 크라이를 추가할 경우 (위 스샷의 첫 번째 빨간 줄 부분)
(주의사항 : 위 스샷처럼 [ ] 안에 넣어야 되고 쉼표도 제대로 추가해야 됩니다.)
MyConfig.Precast=[[1,155,[0,6],5,false],[1,138,[0,6],5,false],[1,138,[0,6],5,false]]; 에 [1,146,[0,6],5,false], 을 추가
(예시2) : 이동 중 프리캐스트에 배틀 크라이를 추가할 경우 (위 스샷의 두 번째 빨간 줄 부분)
(주의사항 : 위 스샷처럼 [ ] 안에 넣어야 되고 쉼표도 제대로 추가해야 됩니다.)
MyConfig.PrecastCheck=[[2,155,[0,6],5,false],[1,130,[0,-1],false],[2,138,[0,6],5,false],[2,149,[0,6],5,0,0,false]]; 에 [1,146,[0,6],5,false], 을 추가
4. 3번의 예시를 따라한 후 길잡이에서 케릭터 이니를 다시 불러와 프리캐스트 부분에 들어가면 위 스샷과 같이 스킬이 추가됩니다. 스킬이 추가된 후엔 케릭터 이니 파일을 직접 수정하지 않고 길잡이에서 수정하면 편하게 수정이 가능합니다.
※ 추가한 스킬 사용하는 방법 : 배틀 크라이 같은 디버프 스킬은 위 스샷과 같이 이동 전과 이동 중 프리캐스트에 다 추가할 필요가 없고 이동 중에만 추가해도 됩니다. 둘 다 추가했다면 위 스샷처럼 이동 중 프리캐스트에 추가한 스킬만 사용 체크하면 됩니다. 또한 Ra 부분에 몬스터를 인식할 범위를 지정하고 Co 부분을 음수로 지정해야 합니다. 자세한 범위는 직접 알아보신 후 지정하시면 될 거 같고, Co 부분은 -1로 설정하면 범위 내 모든 몬스터에게 디버프를 걸고 -2로 설정하면 범위 내 몬스터가 2마리 이상이면 디버프를 겁니다.
다른 저주 같은 디버프 스킬도 비슷하게 설정해서 사용하면 됩니다. 버프는 자주 사용해 보셨을테니 따로 설명하진 않겠습니다.
※ 제가 프리캐스트 부분을 설정해야 했던 원인이 되는 스샷입니다. 해슴딘의 경우 1번 무기에 콜투를 쓰고 무기 스왑 없이 함성을 하는 경우가 대부분인데 게임 내에서 아주 낮은 확률로 함성이 스킬 목록에서 사라지는 경우를 경험했습니다. 이 문제를 해결하기 위해선 무기 스왑을 해야 하는데 따로 무기 스왑 설정이 없더군요. 그래서 생각한게 이동 전 프리캐스트에서 위와 같이 2번 무기로 스왑 홀쉴 후 1번 무기 스왑 함성+홀쉴을 하면 해결될 것이라 생각해 위 스샷과 같이 설정했습니다.
※ 한 가지 주의할 점은 아이템에 차지된 스킬은 프리캐스트로 설정하지 마세요. 프리캐스트로 설정하면 차지된 스킬을 사용하긴 하지만 아이템에 차지된 스킬의 남은 수량을 파악해 수리하는 기능이 없어 수리 부분에서 문제가 생깁니다.
※ 추가 내용 입니다.
아래 댓글을 통해 배틀 크라이가 케릭터 이니 수정만으론 프리캐스트를 하지 않는다는 지적을 받고 테스트 해본 결과 댓글의 지적대로 프리캐스트를 하지 않았습니다.
이에 문제점을 알아본 결과 d2nt 폴더 -> scripts 폴더 -> libs 폴더 -> common 폴더 -> MyPrecast.ntl 파일 내에 케릭터이니에 추가한 스킬에 관한 스크립트가 존재하지 않아 문제가 된 것을 확인했습니다.
그래서 스크립트에 존재하지 않는 스킬의 스크립트를 추가하는 방법을 배틀 크라이 스킬을 예시로 알려드리겠습니다.
d2nt 폴더 -> scripts 폴더 -> libs 폴더 -> common 폴더 -> MyPrecast.ntl 파일을 메모장으로 열고 CheckPrecast: function (mode) 안의 case 138: 과 case 149: 사이에
case 146: // Battle Cry
if (mode == 1 && MyConfig.PrecastCheck[i][2][0] > 0 && MyUnit.CheckSafe(me.x, me.y, MyConfig.PrecastCheck[i][2][0], MyConfig.PrecastCheck[i][2][1]))
{
MyAttack.SwapWeapons(MyConfig.PrecastCheck[i][0] - 1);
MyMove.CastSkill(146, MyMove_HAND_RIGHT);
}
break;
를 추가하여 저장
기존의 하울 스킬 스크립트를 바탕으로 추가한 내용이고 길잡이에서 Co를 -1로 설정하면 스킬을 막 쓰는 경향이 있으니 Co를 적당히 설정하는걸 추천합니다. 이것 외에 새로운 스킬 스크립트를 추가하고 싶으시면 제가 쓴 방법을 참고하여 함성은 기존 함성 스크립트를, 저주는 기존 저주 스크립트를, 버프는 기존 버프 스크립트를 베껴서 추가하면 될 것 같습니다.
이 글이 올라오기전에 배틀 크라이 때문에 시도 했었는데요
저렇게만 하면 제대로 안됩니다
스킬에 지속 시간이 있는데
사냥터를 들어가서 처음만 하고
그 이후부터 안합니다
저걸 하려면 다른 코드를 만져야합니다
뭐 저 같은 경우는 쫄봇이나 이런거 없어서 그런거 무시하고 필요한 부분만 수정하면 되지만
여러개 쓰시는 분들의 경우엔 복잡합니다
자세한건 폰이라 적기 힘들고요
기본적으로 있는 배틀 커맨드랑 같은 방식으로 작동이 되어야 정상인데 케릭터 이니만 바꿔준다고 되는게 아닙니다
제가 한건 배틀 크라이라 이걸로 예를 들었지만
모든 스킬이 다 지속시간이 있을거고 결국 똑같은 문제입니다
확인해보시면 배틀 커맨드는 지속시간 다 되면 세팅한대로 끝나기 5초전이라던지 다시 스킬 사용하여 지속이 되지만
님이 말씀하신것처럼 케릭터 이니만 건드려서는 단순히 처음 한번 뿐입니다