+++++++++++++++++++++++++++ <디아블러네님의 글 中> * 로비버그? 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초 정도 주어서 조금 천천히 검사하도록 바꾼거죠
[TEST REPORT] 제 사랑스런 오리래더 봇순이들 두 마리와 d2매니저 단체 사진입니다ㅎㅎ 한마리는 50방을 도는동안 리스타트 4번 한마리는 44방을 도는동안 리스타트 8번 (20방에 한번씩 시디키 교체로 인하여 리스타트를 하기때문에 2를 빼면) 각 2번과 6번이 리스타트가 생겼고 이중 로비에러에 인한 리스타트는 둘다 0번 헤이가이즈에러에 인한 리스타트는 각 2번과 6번입니다..
3일전에 볼땐 뭔 소리진 넘 어려웠는데...^^ 오늘은 어느 정도 이해가되네요..2~3초 차이는 큰게 아니니깐..시간을 바다가들린다님 처럼 조금늘여봤습니다 ^^
지금부터 모니터링 들어갈려구요.부디 만족할만한 결과가 나와야할텐데.
//그리고 앵벌이도중에 방에서 최대시간이 되지 않았음에도 불구하고 그냥 리슷을하는건 컴터사양에 관한건가요? 아니면 다른분들도 종종 그런경우가 있는건가요?
3일전 첫변경이후 로비에러는현저히 줄었는데. 리슷은 그래도 잦더라구요.
특히나 사냥하다 그냥 로비로 팅기거나 리슷하거나. ㅜ.ㅜ 일단 오늘 하루 모니터링해보고
다시 질문 좀 드릴께요 ^^ 감사합니다
제가 지금 열심히 다른 알고리즘으로 바꾸고있긴한데 잘안되네요ㅠ
암튼 위방법은 로비에러를 줄이는 것이지 리스탓율을 줄이는 방법은 아니에요
그냥 로비에러도 리스탓을 하기때문에 로비에러가 줄면 리스도 줄뿐이지요
오류 경고창이나 헤이가이즈가 떠서 리스타트가 되는건 로더와 코거간의 충돌문제에 가깝기때문에 코어자체가 로더와 완벽한 호환이 되도록 코어 개발자가 바꾸어 주지 않으면
해결방법이 없는 셈이죠..
dud
안녕놔의솨뢍
dud
안녕놔의솨뢍
dud
안녕놔의솨뢍
낭만_바바
dud
충팔이
히발유