Skip to content
봇관련다크 모드

stuck 메시지를 보기 쉽게 바꾸어보자..

조회 수
1,344
추천 수
0
등록일

stuck 메시지를 보다보면 좌표만 나오고 어느 맵에서 충돌이 났는 지 잘 모를 때가 간혹 있죠..
XP봇이라면, d2jsp-move.d2l 파일과, d2jsp-pathing.d2l 파일이고요
얌봇이라면, YAM-Move.d2l 파일과, YAM-Pathing.d2l 파일이 해당됩니다.
고쳐 줄 것은 대략 무브파일에서 두군데, 패싱파일에서 한군데 입니다.

d2jsp-move.d2l 나 YAM-Move.d2l 에서

함수 function DM_TeleportTo(x,y,dontwalk,truetele)를 검색해보면
DC_ThrowException("DM_TeleportTo()","We got stuck someplace! Current XY = " + me.x + " " + me.y + ".");
위와 같은 stuck메시지를 보실 수 있읍니다. 다음과 같이 바꾸어주세요..
DC_ThrowException("DM_TeleportTo()","We got stuck someplace! Current XY = " + me.x + " " + me.y + " in Area [" + DAR_GetAreaName(me.area) + "].");

함수 function _DM_WalkTo(x,y) 에서 아래로 좀 내려가면,
DC_ThrowException("DM_WalkTo()","We got stuck someplace! Current XY = " + me.x + " " + me.y + " in area " + me.area + ".");
역시 다음과 같이
DC_ThrowException("DM_WalkTo()","We got stuck someplace! Current XY = " + me.x + " " + me.y + " in Area [" + DAR_GetAreaName(me.area) + "].");

d2jsp-pathing.d2l 나 YAM-Pathing.d2l 에서

함수 this.MoveToNode = function( pX, pY, pNode, pDataback, pDoorHandler)에서 아래로 내려가면
this._Debug("_MoveToNode() -> We got stuck! Current X/Y = " + me.x + "/" + me.y + " Target X/Y = " + pX + "/" + pY + " in Area " + me.area + ".");
역시 다음과 같이
this._Debug("_MoveToNode() -> We got stuck! Current X/Y = " + me.x + "/" + me.y + " Target X/Y = " + pX + "/" + pY + " in Area [" + DAR_GetAreaName(me.area) + "].");

위와 같이 바꾸어 주시면 어느 맵에서 에러가 났는 지 조금이나마 쉽게 파악 하실 수 있을 듯 합니다.
봇이랑은 별 상관 없는 유저를 위한 눈 요기로 ^^*

추가팁 1] 카운데스방 신오브 텔레방지
xp봇이면 function XP_SorcBossAttack(target)이고 얌봇이면 function XP_BossAttack(target) 이겠죠.
이함수를 보면,,,
while (target.hp > 0 && target.mode != 12 && target.mode != 0) {
위와 같은 반복 문이 있는데.
그아래에 무브 명령이 있으면 그다음 부분에 다음을 추가하고 없으면 그냥 추가하면 되겠죠..
 var mpos = (me.x, me.y);//추가//슬픈사슴님 의견
 // Untimed attack
그리고 마지막에,
 if(me.area == 25 && me != mpos) DM_MoveTo(mpos.x, mpos.y);//추가
 // Increase the counter
 XP_CheckAttacks();
위와 같이 추가를 해주시면 케릭이 25번 맵, 즉 타워5층에 있고, 내가 공격하든 좌표에 없다면 해당좌표로 이동하라는
명령어를 추가하여 보았습니다..

추가팁 2] 피트 2층 마무리 부분에서 안 잡는 부분을 잡게끔 수정
얌봇이라면 YAM_Pit.d2l이고 XP봇이라면 PitXP.d2j 이겠죠..
검색을 통하여 다음 무브 포인트를 찾으세요..
xp 봇
 // Moving left and up
 DM_MoveTo(7584,14417);
 XP_ClearPosition(TPXP_ClearingRadius + 5);
 DSN_PickItems(XP_IdItems);

 DM_MoveTo(7575,14410,true);//추가
 XP_ClearPosition(TPXP_ClearingRadius + 5);//추가
 DSN_PickItems(XP_IdItems);//추가
얌봇
 // Moving left and up
 DM_MoveTo(7584,14417);
 XP_SearchAndDestroy(25);

 DM_MoveTo(7575,14410,true);//추가
 XP_SearchAndDestroy(25);//추가

추가팁 3] 코로나를 미확으로 주을 때 유니크가 false로 나오는 문제 해결 방벙
autounique.lst 이 파일을 열고 다음의 항목을 추가해주세요..
urn=Crown of Ages (Unique Corona Helm)
댓글 8
  • 댓글 #150345

    어라 바다님 언제 복귀하셔때유~ -0-; 커~ ㅡ,.ㅡ; 모르구 있었넹..
  • 댓글 #150351

    감사합니다. 피트건은 귀찮아서 '에이 안잡고 말지!' 하며 안고치고 있었는데 바다님이 고쳐주시네요. 근데 그 부근에서 하나 더 문제가 있어요. 걸어서 봇돌리면 피트 '황금상자'? 열고 다음 위치 Move 위치가 stuck 되서 꼼짝안하고 가만히 서있는경우가 많답니다. 좌표만 조금 수정해 주면 되는데 나중에 걸어서 봇돌릴때 그때 같이 고쳐야지 하곤 미적거리고 있네요. 카운테스건은 전 다른 방법을 씁니다만 바다님의 방식은 제가 나락 잡을때 나락 머리찍고 잡다가 나락 텔포로 도망가면 따라다니는것과 비슷한 방법이군요.
  • 댓글 #150354

    사슴님, 위의 텔레포트는 잡는 방식이 아니라, 신오브 텔레 방지에요 ㅡㅡ; 소순이 신오브 끼고 잡다보면 이유 없이 엉뚱한데 가끔 떨어집니다.. 근데 카운데스 방은 벽이 막혀서 애가 멍청해 집니다.. 나락 머리 찍고 싶으면 다음과 같이 해야죠.. if (target && target.classid==440 && DA_GetRange(target) >= 4 ) DM_MoveTo(target.x, target.y);
  • 댓글 #150357

    바다님이 제 리플을 오해하신듯.. 카운테스 잡을때 '벽이 막혀서 애가 멍청해 집니다.'의 상황에 전 바다님과는 다른 방법으로 처리한다는 이야기구요. 바다님이 본문내용에서 쓰신 카운테스 잡을때 처음위치 저장해놓고 현재위치가 저장위치가 아니면 저장해 놓은 위치로 돌아가는 방식이, 제가 나락 머리찍고 잡기 모드일때 나락이 텔포로 도망다니면 따라가는 나락 잡는방식과 비슷하다는 이야기입니다. 정확하게는 님의 제안에 약간 문제가 있는것이.. me != mpos 로 체크하셨는데 me 전역클래스 속에는 현재 Position뿐만 아니라 다른 여러가지 정보를 포함하고 있습니다. 즉 me != mpos 비교에서 저장해 놓은 캐릭터 정보와, 현재케릭터 정보를 비교해 버리면 me 전역클래스가 가지고 있는 캐릭터의 여러가지 상황 즉 hp,mp등 수시로 변할 수 있는 정보가 바뀌어도 틀리다고 판단한다는 것입니다. 따라서 저 조건문은 신옵의 옵션으로 히트당해 20%(?)의 확률로 텔포한 상태가 아니라도 true가 될 확률이 매우 높습니다. mp만 변해도 저 조건문을 만나면 DM_MoveTo를 실행하겟지요. 그래도 텔포를 안하는것은 DM_MoveTo 함수 속에서 목표위치가 현재위치와 같으면 텔포를 안해줘서 그런것 뿐이지요. 정확하게 하려면 if(me.area == 25 && (me.x != mpos.x || me.y != mpos.y)) 로 하셔야 옳을듯하네요. if(me.area == 25 && me != mpos) 이 조건문은 if(me.area == 25)이거와 별반 차이가 없을겁니다. 하여튼 바다님이 제 리플을 잘못 이해하신건 인터넷상이라 바라보고 하는 말이 아니고 글로 써놓은 말이라 글내용의 뜻이 잘못 전해지는 오류이네요.
권한이 없습니다.
다크 모드