날아다녀님 버전의 NTBot, 아이템 로그 작성을 취향에 맞게 수정해보기
봇의 기능 중 아이템 로그 파일을 작성하는 기능이 있습니다.
캐릭터 설정 파일의 "MyConfig_ItemLog = [0, 0, 0];"라는 항목을 통해 파일 이름과 파일 형식, 그리고 작성할 아이템의 종류를 설정할 수 있죠.
제 경우엔 봇돌이들이 과연 어떤 물건을 주워서 팔았는지, 특정 아이템의 드랍 빈도가 어느 정도인지, 그리고 혹시 아이템 이니 설정이 부실해서 대박 아이템을 팔진 않았는지 등등의 궁금증에 "MyConfig_ItemLog = [3, 0, 1];"로 설정을 했었는데, 물건이 많아지다보면 로그가 너무 산만해서 정신이 없더군요. 그래서 생각한게 아이템 타입별로 로그파일을 저장하는 방법입니다.
일단 해당 봇 캐릭의 설정 파일 내용 중 "MyConfig_ItemLog = [a, b, c];" 부분에서 a의 값과 c의 값이 "0" 이 아니어야 합니다.
그리고 실제로 아래처럼 스크립트 내용을 수정할 파일은 "\scripts\libs\common\MyItemLog.ntl"입니다.
1. MyItemLog.ntl 파일 내용 중 "function MyIL_WriteLogSell(item, npcName)" 함수를 찾아서 아래의 내용으로 통째로 수정합니다.
(변경 전의 함수를 남겨두고 싶으시다면 "function"의 앞 부분에 "/*"를, 그리고 맨 마지막 "}" 뒷부분에 "*/"를 넣어주시면 해당 부분이 통째로 주석처리가 되니 참고하세요.)
//복사하여 붙여넣을 부분
function MyIL_WriteLogSell(item, npcName)
{
if (MyConfig_ItemLog[0] && MyConfig_ItemLog[2] != 0)
{
if (item.quality < 6)
{
return;
}
else
{
MyIL_File("NTBot/MyData/ItemLog/AbitalSell[" + GetBaseStat("itemtypes.txt", item.itemtype, 0) + "].txt", 2, "[" +
me.charname + "(" +
item.itemlevel + ") " +
NTC_ItemQualityToName[item.quality] + "] " +
MyIL_GetItemDesc(item, 0));
}
}
}
//여기까지
2. 위와 같이 수정했을 경우 "\scripts\NTBot\MyData\ItemLog" 폴더에
AbitalSell[Amulet].txt, AbitalSell[Armor].txt, AbitalSell[Axe].txt 등등 아이템 타입별로 판매된 로그 파일이 생성됩니다.
그리고 로그 파일 내용은
[봇돌이 이름(아이템 레벨) 아이템 등급] 아이템 세부 설명
[봇돌이 이름(아이템 레벨) 아이템 등급] 아이템 세부 설명
.
.
의 형태로 저장됩니다.
3. 자신에 맞게 수정하실 분들을 위해 간단한 스크립트 설명을 드리자면...
3-1. "if (item.quality < 6)"
=> 아이템 퀄리티가 6(레어) 이상일 경우에만 로그 파일을 작성합니다. (매직 4, 셋 5, 레어 6, 유닉 7, 크랩 8)
3-2. "MyIL_File("NTBot/MyData/ItemLog/AbitalSell[" + GetBaseStat("itemtypes.txt", item.itemtype, 0)"
3-3. me.charname, item.itemlevel, NTC_ItemQualityToName[item.quality], MyIL_GetItemDesc(item, 0) 등 로그 파일에 기록될 변수들
=> 위의 경우엔 가능한한 최소한의 정보만을 기록하게 했지만, 기타 다른 내용을 함께 기록하고 싶으시다면... 여러 스크립트들을 한 번 훑어 보세요. 변수명이 영어로 되어있긴 하지만 대충 어떤 기능을 하는건지 이름만 보면 알수 있을거에요^^