[9/10] [NT]new D2BS 0.9.0.5 에서 숨렙과 보스 기록을 남겨보자!
분류
봇관련
조회 수
1,734
추천 수
8
![[9/10] [NT]new D2BS 0.9.0.5 에서 숨렙과 보스 기록을 남겨보자! - 1](http://image.durune.com/_data/2008090813261379.jpg)
다음과 같이 나타내기 위해, 아토믹스님의 자료를 무단으로 이용 및 수정했습니다.
(아토믹스님, 죄송해요.^^)
[위 사진은 테스트용이라서, 숨렙 99를 피트에서 주워서 수상하다곤 하지 마시기 바랍니다.^^]
*기본틀은 디아블러네님의 xml기반 로그입니다.*
[ 수정 1 - 2008/09/09 ]
겜블시 undefined 뜨는 부분 수정했습니다.
가장 아랫부분에 적어놨어요.
[ 수정 2 - 2008/09/10 ]
그만 변수명을 섞어적어버렸네요.
NTTown.dbl switch구문의 npcname의 앞부분에 언더바를 추가시켰습니다.
(gondr님 감사합니다!)
이 방법을 쓰기 위해선, 우선 아토믹스님의 로그기록 남기기 자료가 필요합니다.
[NT] 로그파일에 어디서 주웠는지 표기해보자.
http://tradia.me/diablo2/diablo2_tips/184936
[NT] 로그에 숨랩과 에테 여부 추가해보자
http://tradia.me/diablo2/diablo2_tips/185620
이 두 글을 보시고 그대로 수정해주시면 되구요.
그 다음으론, itemlogger.dbl 파일을 살짝 수정할 겁니다.
파일을 여셔서, 아래에 적힌, 두 부분을 수정해줍시다.
function writeLog(item, me, _eth, boss) { //이부분 수정
var filehandle = fopen("logs/itemlog.xml", 2);
var templine = "";
var content = "";
while((templine = filehandle.readLine()) != "") {
if(!(templine == "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>" || templine == "<?xml-stylesheet href=\"itemlog.xsl\" type=\"text/xsl\"?>")) {
content += templine;
}
}
filehandle.close();
var itemlog = new XML(content);
time_now = new Date();
var timestring = time_now.toLocaleFormat("%a %m/%d/%y %H:%M");
itemlog.item += <item char={me.charname} time={timestring} quality={item.quality}> {_eth }{item.name} {"<"}{item.ilvl}{">"} {"---from "} {boss} </item>; //이부분 수정
var fhandle = fopen("logs/itemlog.xml", 1);
content = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
content += "<?xml-stylesheet href=\"itemlog.xsl\" type=\"text/xsl\"?>\n"
content += itemlog.toXMLString();
fhandle.write(content);
fhandle.close();
}
다음으로, common\NTSnagIt.dbl, NTTownManager.dbl 파일을 살짝 수정할거에요.
(tip: 찾기 로 write를 찾으시면 빠릅니다.)
우선 NTSnagIt.dbl 파일을 열어서...
// Item Logger Start
writeLog(_itemunit, me);
// Item Logger End
다음 부분을 찾아서, 아래처럼 고쳐주세요.
// Item Logger Start
writeLog(_itemunit, me, _eth, _Currunt_Boss);
// Item Logger End
같은 방법으로, NTTownManager.dbl 파일을 열어서
// Item Logger Start
writeLog(_items[i], me, _eth, _Pre_Boss);
// Item Logger End
이렇게 고쳐주시면 되겠습니다.
그런데, 아이템을 줍는 경로는 사냥 뿐 아니라 겜블로도 있죠.
따라서, 겜블에도 이를 적용시켜줘야합니다.
NTTown.dbl 파일을 열어서, function NTT_GambleIt(npc) 함수를 찾아, 다음을 수정합니다.
function NTT_GambleIt(npc)
{
var _gambleitem, _newitem, _npcname; //_npcname을 추가합니다.
if(!npc)
return false;
if(!getUIFlag(0x08) || !getUIFlag(0x0C))
return false;
switch(me.act) //여기부터
{
case 1: _npcname="gheed";break;
case 2: _npcname="elzix"; break;
case 3: _npcname="alkor"; break;
case 4: _npcname="jamella"; break;
case 5: _npcname="anya"; break;
} //여기까지 추가합니다.
_gambleitem = NTC_GetItems(npc);
----------------------------------------------------------
그리고, 약간 아래로 내려가면, NTC_SendLogToOOG를 찾을 수 있습니다. 그 부분을 다음과 같이 수정해주세요.
if(njipCheckGoodItem(_newitem, NJIP_CHECK_SIMPLE) > 0) {
NTC_SendLogToOOG("[Gamble] [" + NTC_ItemQualityToNameList[_newitem.quality] + "] " + _newitem.name +"<"+_newitem.ilvl+"> ----from "+_npcname); // 이 줄 수정
// Item Logger Start
var _space=""; // 이 줄 추가
writeLog(_newitem, me, _space, _npcname); // 이 줄 수정
// Item Logger End
}
이렇게 하면 수정 완료에요. 어렵진 않으시죠?
P.S. 겜블쪽 테스트 부탁드리겠습니다. (_ _)