+++++++++++++++++++++++++++ <디아블러네님의 글 中> * 로비버그? 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번입니다..
ㅎㅎ 안녕하세요 디아블러네님 이분제때문에 골머리가 하도썩어서
검생에 검색을 해봤는데
locationAction(controlData.getLocation());
이코드 위에
delay(500); 를 추가하는 방법은 없더라고요 솔찍히 위쪽에 있는 내용은 이미 이전에 불완전한 해결방안으로 나온 내용이지만
정작 인게임 에러자체가 안나오게 한 방법은
locationAction(controlData.getLocation());위에 딜레이 0.5초를 주는거였더라고요
그런내용은 한번도 안올라온거 같아 올려봤어요
확실히 지금 제봇은 현재 어제부터 방새돌아 지금까지 인게임 한번도 안나왔구요 ㅎㅎ
인철님이 올려주셨던 D@BS-M에서 start.dbj 내용과는 많이 다르더라구요
일단 가장 중요하다는 부분에 그냥 딜레이를 추가했더니 에러;;
{ }로 묶어주면 되더라구요
컨트롤 G키로 93번째줄 부근을
if(!InGame)
{
delay(500); //<---- 이부분~!
locationAction(controlData.getLocation());
}
else
{
InGame = false;
STA_SendData(BS_ENDGAME,"");
}
이렇게 하니 에러 나지 않고 넘어갔습니다.
아직 리슷은 보이지 않네요 ^^.
크라
dud
[無情]디아블러네
dud
dud
dud
샤이네스
dud
NoQuestion。[A2L]
MooJuK™[불운]
예슬서방
Fermion
SIA
초원디아
데드좀비
비스바덴
홀롱드
크로우
Shakespeare
zzz365
렛츠고파뤼™
pakjihun
제로스매니아
주야뿌뿡
보석맨..^^
dnjskql
dexa
뱃쌀식용유
yshydro
july-zerg
Speedful
dud
dud
마인드lvl99
dud
dud
dud
뱃쌀식용유
망능리
낭만네크
dud
spirit
불꽃닌자[A3L]
망능리
멋진기우[나눔]
망능리
망능리
dud
망능리
뱃쌀식용유