[NTBot 2.5.3] 로그파일에 장소를 표시하자.
분류
봇관련
조회 수
1,674
추천 수
5
http://image.durune.com/_data/2008102500253380.jpg
<조건>
1. NTBot 2.5.3 Final (10/11) 을 기준으로 합니다.
2. Log file에서 Kept한 아이템만 표시가 됩니다.
3. 각자 원본 파일을 잘 보관하시고 시도하세요. 하루 정도 테스트 해보았는데..
문제 없어 올리는 것이지만. 각자 조금씩 사정이 틀리니까 꼭 원본 파일을 세이브 하시고 하세요.
----------------------------------------------------------------------------------------------------------------------------------
수정이 직접 쉽지 않으시다고 하셔서 수정한 파일을 자료실에 올렸습니다.
각자 조금씩 스크립트가 틀릴 수 있으므로 꼭 원본 파일을 저장하시고 테스트 해보시기 바랍니다.
압축을 풀어서 그대로 덮어 씌어 주시면 될 것 같습니다.
아래 링크에서 다운 받으세요.
http://tradia.me/diablo2/download/46841
----------------------------------------------------------------------------------------------------------------------------------
<수정 방법>
1단계 : 메니저에 장소 추가 하기
아토믹스 님의 자료를 보시고 그대로 수정을 합니다.
디아블로2 - 정강 게시판에서
아토믹스 님의 [NT] 로그파일에 어디서 주웠는지 표기해보자. 를 검색해 보시면 됩니다.
여기 설명대로 수정하면 매니져에서는 표시가 되나 로그.xml 에서는 표시 되지 않습니다.
http://tradia.me/diablo2/diablo2_tips/184936
2단계 : 로그파일에 장소 추가 하기
첫번째 : scripts\libs\itemlogger.dbl 에서 다음 문장을 찾아 아래 문장으로 수정합니다.
function writeLog(item, me, isEthereal, _mode) {
//==> 아래 문장으로 수정.
function writeLog(item, me, isEthereal, _mode, Pre_Boss ) {
itemlog.item += <item id={itemid} char={me.charname} time={timestring} quality={item.quality} ethereal={isEthereal} mode={_mode} name={itemname}>{itemdesc}</item>;
//==> 아래 문장으로 수정. 마을에서 확인한 후 기록하는 함수이므로 직전 장소나 몹을 기록함.
itemlog.item += <item id={itemid} char={me.charname} time={timestring} quality={item.quality} ethereal={isEthereal} mode={_mode} name={itemname} Pre_Boss={_Pre_Boss}>{itemdesc}</item>;
두번째 : scripts\libs\itemlogger.dbl 에서 조금전에 수정한 아래 함수를 복사합니다.
============================================================
function writeLog(item, me, isEthereal, _mode, Pre_Boss ) {
CheckLog()
var time_now = new Date ();
~~~~~~~~~~~~~~~~~~~~~~~~~~ 아래 문장까지 총 56줄 정도 됨.
// Overwrites the whole file
fhandle.writeLine(content);
fhandle.close();
}
===============================================================
복사 후에 이 파일의 (itemlogger.dbl ) 가장 밑에 줄을 보시면
CheckLog(); <---- 라는 문장이 있습니다. 이 문장 바로 위에 복사한 것을 붙힙니다.
세번째 : 복사한 이후 복사한 함수만 아래와 같이 수정한다. !!! 위에 처음 수정한 함수는 그래로 두시고.....
function writeLog(item, me, isEthereal, _mode, Pre_Boss ) {
//==> 함수 이름을 바꾸어 줌.
function writeLog1(item, me, isEthereal, _mode, Pre_Boss ) {
itemlog.item += <item id={itemid} char={me.charname} time={timestring} quality={item.quality} ethereal={isEthereal} mode={_mode} name={itemname} Pre_Boss={_Pre_Boss}>{itemdesc}</item>;
//==>이 함수는 룬, 주얼, 재료 등과 같이 줍는 즉시 확인 되는 아템을 로그에 기록하는 함수임.
itemlog.item += <item id={itemid} char={me.charname} time={timestring} quality={item.quality} ethereal={isEthereal} mode={_mode} name={itemname} Pre_Boss={_Currunt_Boss}>{itemdesc}</item>;
=============================================================================
네번째 : scripts\libs\common\NTTownManager.dbl 에서 다음 문장을 찾아 아래 문장으로 수정합니다
writeLog(_items[i], me, _isEthereal, 0);
==> 아래 문장으로 수정. 두개 수정함.
writeLog(_items[i], me, _isEthereal, 0, _Pre_Boss);
writeLog(_items[i], me, _isEthereal, 1);
==> 아래 문장으로 수정. 한개 수정함. 이부분의 경우 대부분 앞에 //를 해서 주석 처리를 하는 것이 좋습니다. 멀티로 돌리때
==> 여러 봇이 동시에 로그를 만드는 경우 에러가 발생하는 경우가 있더군요..
writeLog(_items[i], me, _isEthereal, 1, _Pre_Boss);
다섯번째 : scripts\libs\common\NTSnagit.dbl 에서 다음 문장을 찾아 아래 문장으로 수정합니다
writeLog(_itemunit, me, _isEthereal, 0 );
==> 아래 문장으로 수정. 1군데 있음.
writeLog1(_itemunit, me, _isEthereal, 0, _Currunt_Boss);
여섯번째 : scripts\logs\itemlog.xsl 에서 다음 문장을 찾아 아래 문장으로 수정합니다.
===============================================================================================
<div style="display: block; float: left; width: 50px; margin-right: 10px; margin-left: 10px;">
<xsl:choose>
<xsl:when test="@mode = '0'">
Kept
</xsl:when>
<xsl:when test="@mode = '1'">
Sold
</xsl:when>
</xsl:choose>
===============================================================================================
==> 아래 문장으로 수정. 5군데 있음.
기존에 Kept라고 표시되는 부분을 아이템을 찾는 보스몹이나 장소로 대체해서 나타내 줍니다.
==================================================================================================
<div style="display: block; float: left; width: 150px; margin-right: 10px; margin-left: 10px;">
<xsl:choose>
<xsl:when test="@mode = '0'">
<xsl:value-of select="@Pre_Boss"/>
</xsl:when>
<xsl:when test="@mode = '1'">
Sold
</xsl:when>
</xsl:choose>
</div>
==================================================================================================
또한 Sold 아이템도 로그에 표시되기를 원하시면..
역시 같은 방법으로
scripts\logs\itemlog.xsl 에서
===============================================
<xsl:when test="@mode = '1'">
Sold
</xsl:when>
</xsl:choose>
=================================================
를 아래와 같이 수정해 주면 될 것 같습니다. 5군데 수정 필요.
=================================================
<xsl:when test="@mode = '1'">
<xsl:value-of select="@Pre_Boss"/>
</xsl:when>
</xsl:choose>
==================================================
그러면. 위와 같이 로그파일을 보실 수 있을 겁니다.
휴.. 조금 복잡한 과정을 끝내셨네요..
잘 사용해 보시기 바랍니다.