1. 아이템이니 읽는 방법
몇가지 예를 들어 말씀드려보겠습니다.
많이 알고 계시는 유니크 아이템중 그랜드크라운을 예로 들어보겠습니다.
위 스샷에 유닉 그랜드크라운의 옵션이 나와 있습니다.
우리는 읽을때 어떻게 읽을까요? 유닉 그랜드크라운인데 방상이 160~200%이고 9~12%라입스틸에 라레가 33%이고 35마나, 50라이프, 25덱스에 80~100%삥찬스가 붙어 있다.. 이러면 좀 어색하지 않을까요??
좀 더 눈에 잘 들어오게 읽어봅시다.
'160~200%방상에 9~12%라입스틸, 파레가 33%이고 35마나, 50라입, 25덱스에 80~100%삥이 붙은 유닉 그랜드크라운'이라고 읽겠죠.
아이템이니를 읽는것도 마찬가지입니다.
아래 아이템이니를 잘 보시면 #이 있죠?
# 뒤는 앞에서부터에서 차례대로 읽고, # 앞은 뒤에서부터 읽으면 자연스러워집니다.
영어야... 중학교 수준이면 다 읽을 수 있으니... 한번 읽어볼까요?
[Name] == GrandCrown && [Quality] == Unique && [Flag] != ethereal # [EnhancedDefense] >= 200 && [ItemGoldBonus] == 100 && [LifeLeech] >= 12
# 뒤부터 읽어봅시다. 앞에서부터 차례대로 읽는다고 했죠? '방상이 200이상이고 삥이 100이며 라입스틸이 12이상'
# 앞의 내용을 읽어봅시다. 뒤부터 읽는다고 했죠? '노에테 유닉 그랜드크라운'
합쳐볼까요? 방상이 200이상이고 삥이 100이며 라입스틸이 12이상인 노에테 유닉 그랜드크라운
어떤가요? 자연스럽죠ㅋ 읽는 방법은 전부 다 똑같다고 보시면 됩니다.
2. 아이템이니의 작성 요령(NTItemAlias.ntl)
자~ 그럼 직접 작성하는데 모든것이 그렇듯... 막무가내로 작성하시면 봇이 알아듣질 못합니다. 규칙이 있는거죠 ㅋ
그럼 규칙은 어디에 있는걸까요?
35차수정\scripts\libs\common 폴더의 NTItemAlias.ntl에 이니작성에 필요한 옵션이 있습니다.
NTItemAlias.ntl에는 약 658개의 아이템 고유이름과 그 고유이름의 숫자가 기재되어 있으며, 클래스(노멀,익셉,엘리트)와 퀄리티(로우퀄리티, 노멀, 슈페리어, 매직, 세트, 레어, 유니크, 크래프트), 스킬 등 아이템이니를 작성하는데 필요한 모든것이 다 들어있다고 보시면 됩니다.
보는 방법과 적용하는 방법은 어떻게 될까요? 역시 예를 들어 말씀드리겠습니다.
_NTIPAliasType["sword"]=30;
자~ 이것을 해석하는 방법입니다.
_NTIPAlias는 무시합니다. 다음 나온게 뭐죠? Type입니다.
Type는 Name의 포괄적인 단어로 sword면 칼의 종류를 모두 어우르는것이죠. 글라디우스,샴쉬르부터 콜블,콜소에 이르기까지 모든 한손or양손칼이 포함됩니다.
해석하면 sword 타입은 아이템이니 작성할땐 sword라고 쓰며 30이라고 써도 된다... 라는 뜻입니다.
이를 적어보면 [Type] == sword 라고 쓸수 있으며, 또한 [Type] == 30 이라고 적을 수 있습니다.
3. 아이템이니 작성요령(MyPick.ntl)
NTItemAlias.ntl가 작성옵션을 기재한것이라면 MyPick.ntl은 작성규칙에 대해 적어놓은것입니다.
경로는 35차수정\scripts\libs\common\MyPick.ntl 입니다.
한번 열어볼까요?
아... 벌써부터 머리가 아파오시는 분들이 계시는군요~ 하지만 아이템이니를 작성하기 위해서는 반드시 알아두셔야 하는 내용이기 때문에 어디 두통약이라도 하나 드시고 천천히 따라와보시기 바랍니다^^
많은 내용들이 있는데 일단 지금 우리에게 필요한것은 고급옵션이 아닌 아이템이니를 스스로 작성할 수 있는만큼이겠죠? 따라서 골치아픈 내용들은 일단 패스!! 반드시 알아놔야 하는것들만 몇가지 적어보겠습니다.
아이템이니에서 # 앞에 와야하는것은 아이템이 드랍했을때 확인절차없이 바로 확인할 수 있는것들로 아래와 같습니다.(대소문자는 구분하지 않습니다.)
1) [Type], [Name](종류) : Type=타입, Name=네임
예) [Type] == sword, [Name] == Colossus Blade
2) [Class](등급) : Clsass(normal=노말, exceptional=익셉셔널, elite=엘리트)
※ 보통 등급(Class)는 Type명령과 함께 오는 경우가 많습니다.
예) [Class] == Normal, [Class] == Exceptional, [Class] == Elite
3) [Quality](퀄리티) : Lowquality=로우 퀄리티(크루드포함), Normal=노말, Superior=슈페리어, Magic=매직, Set=셋트, Rare=레어, Unique=유니크, Crafted=크래프트
예) [Quality] == Normal, [Quality] == Magic, [Quality] == Crafted
4) [Flag](플레이그) : 에테or노에테를 표시하거나 룬워드를 표시할때 사용합니다.
예) [Flag] == Ethereal(에테리얼인것), [Flag] == RuneWord(룬워드아이템인것)
5) [Level](레벨) : 해당 아이템의 레벨을 표시하는것
예) [Level] >= 95 : 레벨이 95이상인 것
6) Prefix, Sufix : 예전에 사용했던 것으로 지금은 거의 사용하지 않으므로 신경쓰지 않아도 됩니다.
아이템이니에서 # 뒤에 와야하는것은 보통의 경우 아이템확인스크롤로 확인해야 알 수 있는것들로써 접두사, 접미사등이 있으며, NTItemAlias.ntl의 _NTIPAliasStat로 시작되는 문구에서 확인 할 수 있습니다.
일단 속성의 경우 너무 많기 때문에 일일히 다 적을 수는 없지만 방어는 예외로 #뒤에 옵니다.
노멀 아이템의 경우는 바로 확인이 가능하지만 매직,레어,유닉,크래프트,룬워드 아이템의 경우 아이템확인 스크롤로 확인했을때 방상 때문에 방어가 달라질 수 있기 때문에 # 뒤에 온다는 점 참고하시구요.
직접 확인해 보시고 궁금한 점은 질문하시기 바랍니다.
# 앞과 뒤에 와야하는 키워드들에 대해 우선 적어봤습니다.
한가지 유의할 점은 위의 키워드들은 반드시 [] 안에 들어가야 봇이 인식을 한다는 것입니다.
만약 [Tpye] == sword를 Type == sword로 쓰면 봇은 인식하지 못합니다.
4. 아이템이니 작성요령(기호)
각각의 키워드들을 알았다면 이것을 자연스럽게 연결시켜줄 기호들을 알아볼 차례입니다.
기호는 '+', '-', '*', '/', '(', ')', '&&', '||', '>', '>=', '<', '<=', '==', '!='가 있습니다. 이 중에 많이 쓰이는것들에 대해 알아봅시다.
1) && : and와 같은 역활을 합니다. &&의 앞과 뒤가 모두 참이어야 합니다.
예) [EnhancedDefense] >= 200 && [ItemGoldBonus] >= 100 : 방상이 200이상이고 삥이 100이상인것(둘 다 만족해야함)
2) || : or와 같은 역활을 합니다 || 앞과 뒤중 한가지만 만족하면 참입니다.
※ &&와 같이 쓰일때는 || 앞과 뒤의 키워드들은 괄호()로 묶어주셔야 합니다.
예) [EnhancedDefense] >= 200 || [ItemGoldBonus] == 100 : 방상이 200이상이거나 삥이 100이상인것(둘 중 하나만 만족해도 됨)
예2) ([EnhancedDefense] >= 200 || [ItemGoldBonus] >= 100) && [LifeLeech] >= 12
-> 라입스틸이 12이상이어야 하고, 방상이 200%이상이거나 삥이 100이상인것.
3) >= : 크거나 같은... 즉 이상입니다.
예) [EnhancedDefense] >= 200 -> 방상이 200이거나 200보다 높은것
4) > : 큰것 즉... 초과
예) [EnhancedDefense] > 200 -> 방상이 200보다 큰것
5) <= : 작거나 같은... 즉 이하입니다.
예) [EnhancedDefense] <= 200 -> 방상이 200이거나 200보다 낮은것
6) < : 작은것 즉... 미만
예) [EnhancedDefense] < 200 -> 방상이 200보다 낮은것
7) == : 같은것
※ 주의 : =와 같은 의미이지만, 아이템이니에서는 반드시 ==로 써야 합니다.
예) [EnhancedDefense] == 200 -> 방상이 200인것
8) != : !=뒤가 거짓입니다.
예) [Flag] != Ethereal -> 에테가 아닌것, [EnhancedDefense] != 200 -> 방상이 200이 아닌것
5. 아이템이니 작성요령(룬워드, 오오라 적용방법)
룬워드 아이템중에는 '장착시 레벨 xx의 xxx 오오라 발동' 과 같은 문구들을 심심찮게 볼 수 있습니다.
또 고가로 판매되는 함성칼 중 색깔이 이쁜 칼들은 '타격(반격)시 레벨 xx의 xxx스킬 발동' 과 같은 옵션이 있습니다. 또한 스킬 중 적용이 어려운 것들이 간혹 있습니다.
이런 문구들은 아쉽지만 위의 키워드들로는 구현할 방법이 없습니다.
이것을 개선한 것이 바로 문자열 검사인데요~ 문자열 검사에 대해 한번 알아보도록 하겠습니다.
문자열 검사은 해당 문자열의 숫자 위치에 따라 조건 변경이 가능한데요~ 설정에 대해 우선 적어보겠습니다.
1) 문자열 전체를 검사하는 방법
['문자열'] != -1 : 문자열이 있으면 참입니다.
['문자열'] == -1 : 문자열이 있으면 거짓입니다.
예) ['장착시 17레벨의 메디테이션 오라의 효과 적용'] != -1 -> 아이템 옵션에 '장착시 17레벨의 메디테이션 오라의 효과 적용'이란 문자열이 있으면 참입니다.
2) 문자열에 포함된 숫자를 검사하는 방법
['{숫자위치}문자열'] : {숫자위치}는 아이템 옵션의 문자열에서 {숫자위치} + 1번째 숫자를 검사합니다.
예) '20살 갑돌이의 몸무게는 50kg, 키는 170cm입니다.'에 ['{0}갑돌이']를 적용하면 20이 됩니다.
모두가 참이 될려면 ['{0}갑돌이'] >= 20 && ['{1}갑돌이'] >= 50 && ['{2}갑돌이'] >= 170 이렇게 하면 되겠죠?^^
통찰력을 예로 들어봅시다.
17메디에 250증뎀이상 에테 쓰레셔 통찰을 보관하라는 이니를 만들어볼께요.
[Name] == Thresher && [Flag] == Runeword # ['{0}메디테이션'] >= 17 && ['{0}증가된 데미지'] >= 250
메디테이션이라는 문자열의 첫번째 숫자가 17이상인것과 증가된 데미지라는 문자열의 첫번째 숫자가 250이상인것을 검사한다는 의미입니다.
이것을 응용하여 아래 스샷과 같은 함성칼의 이니를 만들어봅시다.
2솟이 뚫린 상태로 스샷을 찍었기 때문에 2솟이 없을때를 가정하면 20힘이 빠지게 되겠죠.
우선 이름이 그레이트 소드이고 클레스가 매직, 옵션이 +3함성에 5% 기회로 레벨 3 라이트닝 시전 (공격시) 입니다.
이를 토대로 아이템이니를 만들어보면 아래와 같습니다.
[Name] == GreatSword && [Quality] == magic # [WarcriesSkillTab] == 3 && ['라이트닝 시전'] != -1
-> 라이트닝 시전 이라는 문자열이 있으면 참이므로 위의 매직 그레이트소드를 보관합니다.
[Name] == GreatSword && [Quality] == magic # [WarcriesSkillTab] == 3 && ['{1}라이트닝 시전'] >= 3
-> 라이트닝 시전이라는 문자열의 2번째 숫자가 3이상이면 참이므로 첫번째 숫자가 5, 두번째 숫자가 3이므로
위의 매직 그레이트소드를 보관하게 됩니다.
7. 아이템이니 작성요령(큐빙)
큐빙용 아이템이니를 만들기 위해서는 제일 뒤에 @를 사용해야 합니다.
작성법 : 옵션 # 옵션 @
예) [Name] == Thresher && [Quality] == normal && [Flag] == ethereal # [Sockets] == 0 @
-> 0소켓인 에테 노멀 쓰레셔를 큐빙용으로 보관
※ 참고 : 큐빙용으로 설정된 아이템은 획득시 매니저 로그창에 나타나지 않습니다.
※ 주의 : 개수를 지정하지 않으면 무한대로 줍습니다.
8. 아이템이니 작성요령(개수지정)
보석을 큐빙할때나 보관할 아이템의 개수를 지정을 해야할 경우가 있습니다.
※ 개수 지정은 각 차수별로 다르므로 반드시 봇폴더의 scripts\libs\common\MyPick.ntl를 열어 개수지정 방식을 확인하시기 바랍니다.
작성법 : 보관중인 아이템 개수 검사는 ['{total:방식}아이템 옵션{개수}']로 합니다.
방식은 keep, cubing, warehouse가 있으며 보통은 keep과 warehouse만 쓰이고 대소문자를 구분하지 않습니다.
1) Keep은 보관 여부를 확인할 때마다 개수를 검사하며 줍기, 팔기, 큐빙한 후 보관여부 등을 확인할 경우 적용됩니다.
2) warehouse는 창고지기를 이용할 때만 개수를 검사합니다.
읽는 방법 : 아이템옵션이 개수만큼 있을때 # 앞의 아이템을 해당 개수만큼 보관합니다.
예1) [Name] == Diamond # ['{total:keep}[Name] == Diamond{< 1}'] @
-> 다이아몬드가 1개미만일때(없을때) 다이아몬드를 1개까지 큐빙용으로 보관합니다.
예2) [Name] == Topaz # ['{total:keep}[Name] == Topaz{< 1}'] && ['{total:keep}[Name] == UmRune{>= 2}'] @
-> 움(Um)룬이 2개 이상 있고 토파즈가 1개 미만일때 토파즈를 큐빙용으로 한개까지 보관합니다.
예3) [Name] == Topaz # ['{Total:Keep}[Name] == Topaz{< 3}'] && ['{Total:Warehouse}[Name] == Topaz{> 1}'] @
-> 토파즈를 큐빙용으로 3개까지만 줍되, 창고지기가 왔을땐 2개까지만 창고지기에 줘라(토파즈 1개는 반드시 보관)
출처:http://m.blog.daum.net/ranian20000
'디아블로II' 카테고리의 다른 글
D2NT Manager 작은창 DLL 파일 (5) | 2019.03.20 |
---|---|
디아블로2 D2BS kolbot 자동 설정법 (5) | 2019.03.19 |
버스 도우미 (0) | 2017.10.14 |
룬 번호 및 룬 업그레이드 (1) | 2017.02.07 |
Diablo3 묘실런 [고대인의 묘실] (0) | 2014.04.22 |