Skip to content
봇관련다크 모드

nt봇 로비에러 해결~ㅋ

조회 수
5,107
추천 수
39
등록일


+++++++++++++++++++++++++++
<디아블러네님의 글 中>
* 로비버그? D2메니져 상엔 in game 상태이나 로비에서 대기하는 버그
* in game버그 ? 방 입장 후 20분 동안 스크립트 수행을 하지 않는 버그

많은 분들이 이제 로비에러 0이라 하시니 로비에러는 확실히 줄었다고 생각되는군요ㅎ
2일간 테스트후 이곳에 올리고 다시 2일이 지나서 총 4일간 테스트..
로비에러는 한번도 나지 않았습니다 각 시스템에 따라 차이가 있겠지만 그건 자신의 시스템에 맞게 시간을 조절하는걸로
해결이 될듯 하군요

현재 제가 쓰고있는 버전에대한 쪽지가 많은 관계로(플러그인 보내달라거나..)
이전까지 쪽지주신 분들께는 개인적으로 몇분 보내드리긴 했습니다만...
제 맘대로 남의자료를 함부로 보내고 하는건 좀 그렇기도하고 저도 너무 손이 많이 가는지라...(저도 이제 게임조금 할께요 ㅎ)
쪽지는 이제부터 받지 않겠습니다.. 죄송합니다(_ _)a
+++++++++++++++++++++++++++


예전 mmbot전성기일때 활동하던 dud입니다.. 머 저 아는사람은 없을듯하네요 ㅎㅎ
워낙 눈팅 유저라.. ㅎㅎ
누군가 해결하신분이있는데 제가 뒷북 치는것일지 모르지만 그래도 시작해 볼께요

우선 제 nt봇 버전을 말씀드리자면
이곳에서 다운받은
nt봇 D2BS 0.9.0.4 버전을 쓰고있습니다
시작한지 얼마 안되어서 헬포지 러쉬용 케릭하나 키우려고 오리소소부터 키우기 시작했는데요
현재 오리에서 돌리고는 있지만 머 확장이나 오리나
이 문제 해결하는건 같으니 상관없습니다

아무튼 테스트해본 결과 47시간동안 인게임 에러는 한번도 안나오네요ㅎㅎ

머 서두는 여기까지 하고

nt봇의 기본적인 스크립트에 대한 이해는 모두들 하고있는것으로 추정하고 본론부터 바로 들어가겠습니다

우선 스크립트 폴더 안에 있는 starter.dbj파일을 메모장이나 에디트 플러스등으로 편집을 합니다

그럼
123번째 라인 즈음 부터 아레와 같은 내용이 나오게 되는데요
switch(lastGameStatus)
 {
 case 0:
 controlData.click(controlData.controls.lobby.button.join);
 delay(100);
 controlData.click(controlData.controls.lobby.button.create);
 nextGameMake = getTickCount() + createGameTimeout; // set our timeout
 sendEventToOOG(127, location.name, 0);
 break;

이건 로비에서 크리에이트 게임을 할경우에 우선 JOIN버튼 한번 클릭후 0.1초 있다가
CREATE를 클릭후 바로 방제 입력하고 방을 만들게 되는 스크립트인데요
여기서
1. controlData.click(controlData.controls.lobby.button.join); 이내용을 삭제하거나 주석 처리해주세요
2. delay(100); 여기의 100을 1000정도로 늘려주시구요
3. controlData.click(controlData.controls.lobby.button.create); 의 다음 줄에 delay(1000);을 추가해주세요
위와 같이 바꾼이유는 우선 제가 볼때 조인 클릭하는건 인게임 에러에 아무런 효과도 없습니다..
대신 방을 빠져 나와서 1초간 기다렸다가 크리에이트 버튼을 클릭하고 1초간 기다렸다가 방제와 비번을 입력하고 방을 만들게 하도록 바꾼것입니다
로비에서 방을 조금 천천히 만들도록한것이죠

5. 같은 파일의 76번째 라인 즈음 부터 다음과 같은 내용이 있을 것입니다
sendEventToOOG(65535, "Maximum game length reached!", 65535);
quit();
이 코드 바로 다음에 delay(2000); 를 추가해 줍니다
이건 제한시간이 다되어서 로비로 나왔을때 2초간 대기하도록 한것입니다

자 이건 진짜 해결된 코드로 고치기위한 준비에 불과하구요(이렇게만한다고 해결되지 않습니다)

6. 이코드를 넣고 인게임 에러가 하나도 안생기게 되었는데요 방법은 이렇습니다(제일 간단합니다)
이 파일의 메인함수 안에 다음과 같은 코드가 있을꺼에요
locationAction(controlData.getLocation());
이걸 분석해보면 이건 현재 케릭이 어디에 있는지를 검사하고 각 위치마다 서로 다른 동작을 하도록 하는 함수입니다
이코드 바로 위에 delay(500);를 추가해 줍니다

이렇게 바꾼이유는 메인함수 전체를 분석해보면 케릭이 방에 있지 않을때 _ingame을 false로 바꾸고
locationAction(controlData.getLocation())이 함수를 불러오는 건데요
케릭이 방에서 나가는 순간 케릭의 현재 위치를 너무 빨리 검사한 나머지 메니져는 케릭이 방에서 나오지 않은걸로 체크 했지만 게임상으로는 로비로 빠져나오는 상황이 만들어 질수 있을듯하더라고요

그래서 locationAction(controlData.getLocation());이 코드 위에 딜레이를 0.5초 정도 주어서 조금 천천히 검사하도록 바꾼거죠

그 이후로는 인게임에러 전혀 없네요

이렇게 다 고처진 소스는 아레와 같습니다

생략.....
function main()
{
 delay(1000);

 var _ingame = false;

 controlData.clickDelay = clickDelay;
 controlData.textDelay = textDelay;
 controlData.clickDelayRandom = clickDelayRandom;
 controlData.textDelayRandom = textDelayRandom;

 while(1)
 { 
 if(me.ingame)
 {
 if(!inGameAt)
 inGameAt = getTickCount();

 if(getTickCount()-lastGameMade < gameMaxLength)
 {
 if(!_ingame)
 {
 _ingame = true;

 sendEventToOOG(126, "In Game", parseInt(gameMinLength/1000));
 lastGameStatus = 2; // in game successful
 }

 delay(1000);
 }
 else
 {
 sendEventToOOG(65535, "Maximum game length reached!", 65535);
 quit();
 delay(2000); //<----********고친부분*******

 while(me.ingame)
 delay(500);
 }
 }
 else
 {
 if(_ingame)
 _ingame = false;

 delay(500); //<----********고친부분******* 이부분이 제일 중요!!!!!!!!!!!!!!!!!!!!!!!
 locationAction(controlData.getLocation());

 delay(500);
 }
 }
}

function locationAction(location)
{
 switch(location.id)
 {
 case 3: // Lobby Chat
 if(!chatActionsDone)
 {
 chatActionsDone = true;
 delay(rnd(waitInChatBeforeActionsMin, waitInChatBeforeActionsMax));

 if(joinRandomChannel || joinChannelInChat != "")
 {
 say("/join " + (joinRandomChannel ? getRandomString(rnd(3,10)) : joinChannelInChat));
 delay(1000);
 }
 }
 case 1: // Lobby
 if(location.id == 1 && joinChatAfterGame)
 {
 delay(rnd(waitBeforeEnterChatMin, waitBeforeEnterChatMax));
 controlData.click(controlData.controls.lobby.button.enterChat);
 break;
 }

 if(getTickCount() > nextGameMake)
 {
 lastGameFailed = false;

 switch(lastGameStatus)
 {
 case 0:
  delay(1000); //<----********고친부분*******(수정)
 controlData.click(controlData.controls.lobby.button.create);
 delay(1000); //<----********고친부분*******

 nextGameMake = getTickCount() + createGameTimeout; // set our timeout
 sendEventToOOG(127, location.name, 0);
 break;
 case 1: // game failed, rollover to reset timer
 inGameAt = getTickCount(); // reset inGameAt, to wait how long we should have waited..
 lastGameFailed = true;
 case 2:
 outputGameLength();
 lastGameStatus = 0;
 setNextGameMake();
 sendEventToOOG(127, location.name, 0);
 break;
 }
 }
 else
 {
 locationTimeout(nextGameMake-getTickCount(), location);
 }
 break;
생략.........

고수님들 해보시고 해결되셨다 싶으시면 다시 정리해서 올려주시면 감사하겠습니다 (_ _)
제가 말주변이 없다보니 제대로 이해하셨나 몰겠네요.. ㅠㅠ
그럼 성공하시길 빌어요~!!!!!

============================================================
http://tradia.me/diablo2/download/41454
플러그인폴더 통으로 올리려했지만 디아블러네님 조언에따라 스타터파일만 올렸습니다~!!

위 소스 수정된걸로 올렸으니 참고하세요

============================================================

[TEST REPORT]
제 사랑스런 오리래더 봇순이들 두 마리와 d2매니저 단체 사진입니다ㅎㅎ
한마리는 50방을 도는동안 리스타트 4번
한마리는 44방을 도는동안 리스타트 8번
(20방에 한번씩 시디키 교체로 인하여 리스타트를 하기때문에 2를 빼면)
각 2번과 6번이 리스타트가 생겼고
이중 로비에러에 인한 리스타트는 둘다 0번
헤이가이즈에러에 인한 리스타트는 각 2번과 6번입니다..

nt봇 로비에러 해결~ㅋ - 1
댓글 110
  • 댓글 #192811

    제가 말주변이 없어서 그런데요 조금만 인내심을 가지고 천천히 읽어보세요 잡소리가 많아서 그렇지 고친건 얼마 안된답니다..ㅎ
  • 댓글 #192814

    전에 비슷한 자료를 자료실에 올린 기억이 얼핏 나는것도 같네요.^^
  • 댓글 #192817

    ㅎㅎ 안녕하세요 디아블러네님 이분제때문에 골머리가 하도썩어서 검생에 검색을 해봤는데 locationAction(controlData.getLocation()); 이코드 위에 delay(500); 를 추가하는 방법은 없더라고요 솔찍히 위쪽에 있는 내용은 이미 이전에 불완전한 해결방안으로 나온 내용이지만 정작 인게임 에러자체가 안나오게 한 방법은 locationAction(controlData.getLocation());위에 딜레이 0.5초를 주는거였더라고요 그런내용은 한번도 안올라온거 같아 올려봤어요 확실히 지금 제봇은 현재 어제부터 방새돌아 지금까지 인게임 한번도 안나왔구요 ㅎㅎ
  • 댓글 #192820

    아 그리구 다른 인게임에러 해결을위한 보조프로그램 전혀안쓰고 d2manager 만 쓰고 있습니다
  • 댓글 #192829

    딜레이처리부분 500으로 해놨던거 1000으로 수정된게 있습니다 그리고 딜레이주었던 부분은 될수있으면 제가 위에 써놓은 딜레이로 설정해주세요
  • 댓글 #192835

    수정해봤네요.. 결과보고 다시 올께요 ^^ 고맙습니다.
  • 댓글 #192856

    대단하시네요.. 무슨말인지 못알아먹고 그냥 바로 복사해서 붙여넣기 했습니다 ㅎㅎㅎ
  • 댓글 #192862

    엄청나군요!! 8봇50방 리슷제로입니다 완벽합니다!! 대단히수고하셨습니다... 추천꽝!!!
  • 댓글 #192865

    워.. 빨리 퇴근해서 해봐야겠네요. 정말 좋은 자료인듯 합니다. 감사합니다.
  • 댓글 #192868

    허거걱... 지금 열나게 돌리고 있는데.. 리슷 0.... 대박인데요??????
  • 댓글 #192874

    헐.. 대단하시네요.. 지금 당장 써봐야겠네요~ 강추!!
  • 댓글 #192883

    sendEventToOOG(65535, "Maximum game length reached!", 65535); quit(); 이부분은 없는데 어떻게 해야하나요?
  • 댓글 #192889

    전 인철님이 올려주셨던..D@BS-M을 사용중인데요...starter.dbj파일이 있긴있는데.. 내용이 많이 다르더라구요,..ㅜㅜ 근데...dud님이 가장중요하다고 하신 locationAction(controlData.getLocation()); 에 delay(500); 를 추가하는 방법만 적용해도 리슷이 줄어들까요?...실험을 해보고 싶어도 회사라서..ㅠㅠ 혹시 리슷 해결이 가능할련지 문의 드립니다...
  • 댓글 #192892

    dud님이 수정한데로 하니 확실이 인게임에러가 줄어드네요.. 정말 감사합니다. 이제는 마음편히 다른일 할수있겠는데요..
  • 댓글 #192898

    인철님이 올려주셨던 D@BS-M에서 start.dbj 내용과는 많이 다르더라구요 일단 가장 중요하다는 부분에 그냥 딜레이를 추가했더니 에러;; { }로 묶어주면 되더라구요 컨트롤 G키로 93번째줄 부근을 if(!InGame) { delay(500); //<---- 이부분~! locationAction(controlData.getLocation()); } else { InGame = false; STA_SendData(BS_ENDGAME,""); } 이렇게 하니 에러 나지 않고 넘어갔습니다. 아직 리슷은 보이지 않네요 ^^.
  • 댓글 #192901

    ㅎㅎㅎ 유용하게 잘쓰셨다니 기쁘네요ㅎㅎㅎ dnjskql//흠 글쎄요 그부분이 없는 버전도 있나요?? 제가 여러가지 nt봇을 다써본게 아니라서... 흠...starter.dbj 파일 내용 복사해서 쪽지로 한번 보내주세요 확인해 볼께요 뱃쌀식용유//님께서도 starter.dbj파일 내용 쪽지로 보내주세요ㅎㅎ 확인해 드리겠습니다
  • 댓글 #192904

    ㅎㅎ Speedful//님 정보를 자기것으로 만들줄 아시는군요!!!! 성공하셨다니 축하드려요ㅎㅎ 저와 파일내용이 좀 다르신 분들은 Speedful님게 여쭈어 보는게 좋을듯하네요ㅎㅎㅎ
  • 댓글 #192910

    그제 해결하고 나서부터 오늘아침까지 테스트한 결과 인게임에러는 한번도 나오지 않았고 가끔 헤이가이즈 오류가 나는건 로더와 코어의 충돌문제 같은데.. 아무튼 10방에 한번정도 헤이가이즈 때문에 리스하는것 빼곤 오류가 없네요 이것만 고쳐지면 완벽할텐데..ㅎ
  • 댓글 #192913

    뱃쌀식용유 //님께서 보내주신 소스 보니 Speedful님의 소스와 같은듯하군요 아레 소스부분을 if(!InGame) locationAction(controlData.getLocation()); else { InGame = false; STA_SendData(0, "ENDGAME"); } } delay(500); } } 아레처럼 고쳐주세요 if(!InGame) { delay(500); locationAction(controlData.getLocation()); } else { InGame = false; STA_SendData(0, "ENDGAME"); } } delay(500); } }
  • 댓글 #192916

    그리고 controlData.click(controlData.controls.lobby.button.create); 를 검색하셔서 앞뒤에 delay(1000);을 추가하해보세요
  • 댓글 #192919

    dud님 답변 감사합니다. 노트북으로 시험 test후 말씀드릴께요....~~ 성공하길 기원해주세요^^....~~제발 성공해라.....
  • 댓글 #192922

    nt봇 D2BS 0.9.0.4 버전 도대체 어디있어여? 아직0.9.0.2 쓰고있는데 ㅋ~~ 자료실찾아봐도없네,,
  • 댓글 #192925

    저도 0.9.0.2쓰고 있는데 나름 내용에 맞게 바꿔봤지만 효과가 없네요. 0.2버젼도 수정 해주세요~
  • 댓글 #192928

    정강란에 nt 검색하시면 nt봇설치하는 설명 다른분들이 자세히 올려놓셨는게 거기에 자료링크까지 되있어서 감지덕지하며 받아쓰고있어요ㅎㅎ 제가 0.9.2.0은 한번도 안써봐서 잘 모르겠네요 왠만하면 버전업하셔서 쓰시는게 현명한 방법같습니다 ㅎㅎ
  • 댓글 #192934

    리슷이 현저하게 줄었네요. 잘 쓰겠습니다 ^^ 추천꾹~
  • 댓글 #192937

    D2BS Alpha 0.9.0.4 - Official Release 이거받아서,,수정하여사용하면되나여?? 0.9.2.0 이버전박에안써봐서,,ㅋ~
  • 댓글 #192940

    20방 돌고있는데 아직까지는 리스타트가 없네요 감사합니다 ^^ 시간의 여유가되신다면 갈끔하게 파일로 정리해서 올려주시는것도 도움이될듯싶네요 흠.. 제가 올리기싶지만;;; 정확하게 수정한건지는 아직 판가름가지가 않아서 실험중인데 지금까지는 만족이네요 감사합니다^^
  • 댓글 #192943

    자료받아 수정해서 사용해 봐야겟네여~~ dud님 정말 감사합니다.
  • 댓글 #192946

    dud님 자료실에올린 starter 파일,,, 이미수정해놓으신거같은데..맞나여??
  • 댓글 #192952

    그대로 받아서 사용하면 되겠군요 dud님 정말 감사합니다~~
  • 댓글 #192955

    dud님 회사라서 오랫동안 보지는 못하구....리슷이 많이 줄어든것 같네요... 암튼 감사합니다....^^
권한이 없습니다.
다크 모드