Skip to content

팁 게시판

네크 봇 원하는골렘을 뽑아보자 (편법이니 주의하세요)

분류 봇관련 조회 수 2,183 추천 수 0

안녕하세요?
웨스트에서 솔로로 활동중인 Abi입니다.

디아블러네님 Final버전을 쓰고 있구요.
직접 말씀은 못드렸지만 잘 쓰고있습니다.^^
잠시 이자리를 빌어 감사하단 말씀 올립니다.

네크유저로서 본넼으로 봇을 돌리는데 원하는 골렘이 뽑히질 않더군요.

저의 경우는 언제나 파이어골렘을 뽑아서 도는데
저와 비슷한 분들의 경우를 검색해보니
그분들은 블러드골렘이 뽑힌다고 하시더군요.

뭐 게시판에 뾰족한 해결책은 찾아봐도 없는 것 같아서
얍쌉한 팁 하나 찾아냈습니다.

일단 scripts/ribs/common/d2jsp-attack 라는 파일에는
네크 본아머와 골렘에 관한 부분이 있는데

골렘에 대한 함수가
자동으로 최강의 골렘을 뽑게 되도록 설정이 되어있더군요.

기본값은 파이어 -> 블러드 -> 클레이 로 되어있습니다.
따라서 저처럼 파이어골렘까지 투자한 분들은 파이어골렘을 소환
아이언이나 블러드까지 투자한 분들은 블러드골렘을 소환
클레이만 찍으신 분들은 클레이만 소환되게 되어있더군요.


문제의 부분은 바로 여기입니다.

 // Autodetect the best Golem to use
 var _golem=false;
 if(DC_CheckSkill(94) >= 1) { _golem = 94; }
 else if(DC_CheckSkill(85) >= 1) { _golem = 85; }
 else if(DC_CheckSkill(75) >= 1) { _golem = 75; }

컴퓨터를 공부하지 않아서 정확한 뜻은 잘 모르겠지만
1. 만약에 94(파이어골렘)스킬까지 체크되어있으면 파이어골렘을
2. 그렇지 않고 85(블러드골렘)스킬까지 체크되어있으면 블러드골렘을
3. 그렇지 않고 75(클레이골렘)스킬까지 체크되어있으면 클레이골렘을
자동으로 소환하라는 내용인 듯 싶습니다.(이는 숫자를 바꿔서 실험해봤습니다.)

따라서 원하는 골렘의 번호를 첫번째 If함수 안에 넣어버리면 해당 골렘이 소환됩니다.
클레이 골렘을 소환하고 싶다면 if(DC_CheckSkill(75) >= 1) { _golem = 75; }
블러드 골렘을 소환하고 싶다면 if(DC_CheckSkill(85) >= 1) { _golem = 85; }
이렇게 하시면 됩니다.

그렇다면 아이언골렘을 사용하려면 어떻게 하는가???

아래와 같이 해당부분을 모두 주석처리 해주시면 됩니다.



 // Autodetect the best Golem to use
// var _golem=false;
// if(DC_CheckSkill(75) >= 1) { _golem = 75; }
// else if(DC_CheckSkill(94) >= 1) { _golem = 94; }
// else if(DC_CheckSkill(85) >= 1) { _golem = 85; }
//
// // Cast a Golem if no one is raised
// if (_golem) {
//
// // Fire Golem
// if (_golem == 94 && !DC_getNPC(292)) {
//
// DC_DoCast(_golem,0);
// }
//
// // Blood Golem
// if (_golem == 85 && !DC_getNPC(290)) {
//
// DC_DoCast(_golem,0);
// }
//
// // Clay Golem
// if (_golem == 75 && !DC_getNPC(289)) {
//
// DC_DoCast(_golem,0);
// }
// }



이렇게 하면 골렘을 전혀 소환하지 않게 되니
봇돌리기 전에 소환시켜놓은 아이언 골렘은 그대로 유지되게 됩니다.

이론은 잘 모르고
직접 실험으로 해본거니까
또 다른 변수가 있을 수도 있겠네요.

다른 의견 있으시면 답글 주시구요.
수정할 부분 있으면 지적해주시기 바랍니다.

분명히 말씀드리지만
이는 얍쌀한 편법으로써
봇의 버전이 달라져서 새로운 함수가 적용되면
어떻게 달리질지 모르는 방법입니다.

따라서 무공아골, 야수아골을 사용하는 유저분들은
충분히 주의를 기울여서 차버전이 나오는 경우
반드시 확인을 하고 수정하시기 바랍니다.

PS.
서민들은 클레이골렘 사용하셔요. 좋습니다.
체력도 좋고, 쉽게 소환도 되고, 슬타도 걸어주고
저는 본넼(극본넼은 아님)이라 모든 소환스킬을 1개씩만 찍었지만
골렘이 독단적으로 죽는 경우는 거의 없었습니다.
  • 이니셜마스터[A2L] 2006.07.15 23:32
    자료를 자료실에 올려주실수 있는지요 ? 부탁드립니다. 초보라 어렵네요~ 감사합니다.
  • 슬픈사슴 2006.07.15 23:46
    기본적으로 DC_CheckSkill() 함수가 스킬 레벨 전부 합한것을 돌려주므로 // Autodetect the best Golem to use var _golem=false; if(DC_CheckSkill(94) >= 1) { _golem = 94; } else if(DC_CheckSkill(85) >= 1) { _golem = 85; } else if(DC_CheckSkill(75) >= 1) { _golem = 75; } 이런 방식의 코드는 좀 지능이 낮아보이는군요. 이 글 보고 이러지 말고 레벨 체크하면 간단할텐데.. 하고 골렘 스킬레벨 체크로 소환하게 하는 방법을 적어드립니다. 설마 골렘 하나씩 찍었다고 하더라도 실제로 1랩 골램으로 돌리시는건 아니겟지요? 그러신 분은 그냥 본문글의 제안대로 가는게 좋습니다. 아래 방법은 소용없습니다. 우선 이 글이 올라오게된 전체적인 배경으로 보아 아골을 소환 사용중일때는 아골이 있나 없나 보는게 좋겟지요? 여기서 한가지 문제가 생겼습니다. 제가 가진 자료와 여기에 있는 자료간에 차이가 좀 있습니다. 제가 가진 자료의 골렘 클래스 아이디와 실제 스크립트에서 사용하는 골렘 클래스 아이디가 좀 다르군요. 스크립터의 골렘 소환이 정상적이라면 제가 가진 자료가 엉터리라고 보고 때문에 완벽한 수정방법은 못드리게 되었습니다. 그럼 스텝을 밟아봅시다. 프로그래밍의 가장 기초적인 상식으로 자기가 하고자 하는일을 논리적으로 풀어서 적어 보는것입니다. 1 : 아이언골렘이 있으면 골렘 소환을 무시한다. 2 : 가장레벨이 높은 골렘을 찻는다. 3 : 그 레벨의 골렘을 소환한다. 간단하지요? 스크립터로 풀어봅시다. if(!DC_getNPC(아이언골렘아이디)) // 1. 아이언골렘이 없으면.. { // 2. 가장 높은 레벨의 골렘스킬을 찻는다. var _Skill_FireGolem = 94; var _Skill_BloodGolem = 85; var _Skill_ClayGolem = 75; var _highest = 0; var _golemLevel = 0; var _golenClassId = 0; _golemLevel = DC_CheckSkill(_Skill_FireGolem); if( _golemLevel > _highest) {_highest = _golemLevel; _golenClassId = _Skill_FireGolem;} _golemLevel = DC_CheckSkill(_Skill_BloodGolem); if( _golemLevel > _highest) {_highest = _golemLevel; _golenClassId = _Skill_BloodGolem;} _golemLevel = DC_CheckSkill(_Skill_ClayGolem); if( _golemLevel > _highest) {_highest = _golemLevel; _golenClassId = _Skill_ClayGolem;} // 3. 골렘을 소환한다. switch(_golenClassId) { case _Skill_FireGolem : if (!DC_getNPC(292)) DC_DoCast(_golenClassId,0); break; case _Skill_BloodGolem : if (!DC_getNPC(290)) DC_DoCast(_golenClassId,0); break; case _Skill_ClayGolem : if (!DC_getNPC(289)) DC_DoCast(_golenClassId,0); break; } } 요 정도입니다. 위의 코드를 본문글에서 주석처리하라고 하신 부분에 넣으면 되겟습니다. 물론 본문의 클레이 골렘을 소환하고 싶다면 if(DC_CheckSkill(75) >= 1) { _golem = 75; } 블러드 골렘을 소환하고 싶다면 if(DC_CheckSkill(85) >= 1) { _golem = 85; } 요것도 필요가 없습니다. 제가 코드 테스트 환경이 안되서 테스트는 못해봤지만 거의 문제 없을겁니다. 그리고 첫번째 if(!DC_getNPC(아이언골렘클래스아이디)) // 1. 아이언골렘이 없으면.. 이부분은 제가 아이언골렘 클래스아이디를 몰라서 '아이언골렘클래스아이디'이라고 적었는데.. 저부분에 아이언골렘클래스아이디 숫자를 적어주면 됩니다. 흐름상으로 봐서... 가장 유력한 번호가 291번이고 아니면 288번이나 293도 유력합니다만 직접 테스트 해 보시고 아니면 280번대, 290번대 주변의 다른 번호도 넣어보세요. 그리고 본문 글 쓰신분 힘내세요. 본문글이 절대 편법은 아닙니다. 다만 본문글의 방법대로 하면 특정환경으로 특화돼서 다른 분이나 다른 캐릭등 다른 네크의 골렘 환경에서는 일일이 고쳐 주어야 하고 한사람이라고 해도 d2jsp-attack.d2l 파일이 그 컴퓨터의 모든 봇이 공용으로 쓰는거라 다른 골렘을 소환하는 네크가 있으면 그 네크는 잘못 돌아간다는게 문제점입니다. 제가 제안한 방법은 극히 초보적인 방법이고 가장 쉬운 방법입니다. 이 방법 이외에도 본문글의 문제점을 피해갈 방법은 많이 있습니다. 프로그래밍 취향에 따라서 다르게 할 수 있구요. 또는 캐릭 환경설정 파일에 소환할 골렘 번호를 직접 지정해서 하게 하는방법도 있구요. 이 내용에다 대고 딴지걸만한 내용으로는 아래 정도..... ()안은 제 응답입니다. 1. 코드가 너무 길다. (어쩔수 없네요. 코드가 좀 길어졌지만 이후부터는 골렘 소환에 관해서는 신경꺼도 됩니다. 어떤 네크를 돌리든 그 네크의 가장레벨이 높은 골렘이 소환됩니다. 실제로 본 코드 길이와 크게 차이 나지 않습니다) 2. 코드가 길어서 봇 돌아가는데 시간이 걸릴것이다. 따라서 랙이 더 심해질거다. (무시합니다. 봇 소스에 이것보다 훨씬 시간이 많이 걸리는 코드를 필요 없이 박아둔거 많이 보입니다. 이런말 하실분은 가볍게 'KIN~' 입니다. 원래보다 함수 DC_getNPC 한번, DC_CheckSkill두번 정도 호출이 되는데 DC_CheckSkill함수 호출은 무시해도 되고 DC_getNPC가 아주~~~~~~~ 약간 부담이 되는 함수이지만 들어가는 비용대비 얻는 효과가 더 크다고 봅니다). 3. 테스트도 안해보고 글을 올렸다. 정강 게시판에는 확실한 정보만 올라와야 한다. (제가 그럴 환경이 안됩니다. 그리고 이글은 본문글에 있는 개선의견에 대한 리플글입니다.) 끝으로, 다시한번 당부드리지만 이 리플글의 소스는 테스트가 되지 않았습니다. 주의깊게 살펴보았지만 머피의 법칙같이 '오류는 만든 프로그래머의 눈에는 보이지 않으나 주변사람의 눈에는 금방 보인다.'라는게 있습니다. 마치 장기의 훈수와 비슷한것이죠. 해서 그대로 적용해서 안될때 오류나면 수정할 정도 실력이 가진분만 고쳐보세요. 기본적인 틀은 다 잡혀있어서 오류나도 고치기 쉬울것입니다.
  • 회향 2006.07.15 23:48
    에구 복잡하다;;
  • 이니셜마스터[A2L] 2006.07.19 00:35
    간단한방법은 자료실의 이니셜마스터 가 올린자료및에 댓글보세요
  • 맨땅USER 2006.07.21 11:47
    좋은 자료 감사요
  • 으흥으헝 2011.07.05 23:09
    좋은 정보감사합니다 잘쓸게요
  • sc_top 2019.03.09 18:12
    좋은정보 감사합니다

팁 게시판

번호 분류 제목 글쓴이 날짜 조회
공지   게시판 푸시 알림 / 통합 앱 서비스 31 file 트디개발자 2023.09.20 831.8k
공지 디아관련 에테리얼 벅큐빙 표 219 eunnanoDiablo™ 2008.03.05 140.3k
공지 디아관련 케릭별 갑옷 착용 모습 325 수린[아빠] 2009.06.09 111.4k
공지 디아관련 디아블로 각종 팁과 정보 간추림 입니다 (_ _) 1547 조은아저씨 2010.05.24 211.6k
공지 봇관련 유니크 업글 표 366 file 카인 2013.11.02 412.9k
> 봇관련 네크 봇 원하는골렘을 뽑아보자 (편법이니 주의하세요) 7 아비게일[west] 2006.07.15 2.2k
255 봇관련 xp bot 물약먹기-나만의 노하우 7 골드아템 2006.07.13 2.0k
254 봇관련 XP2.3h / FollowXP.d2j 수정 - "BO" 커맨드 문제 9 thething 2006.07.13 1.6k
253 봇관련 팀봇/쫄봇 설정방법 v0.6.1 57 봉구입니다 2006.07.12 6.6k
252 봇관련 xp2.3h / 팀봇 스크립트(FollowXP.d2j) 오류 수정 [글 수정] 13 thething 2006.07.12 1.8k
251 봇관련 수동봇 렐따, 방스틸 및 오류 해결책 16 루키아 2006.07.10 1.8k
250 봇관련 d2jsp - 치킨 등으로 최소게임시간이 무시되는 상황의 대처 8 thething 2006.07.08 2.2k
249 봇관련 XPBot 사냥중 용병이 죽어도 걍 살리지얺고 진행하고 싶을때.. 8 공중부양 2006.07.08 1.5k
248 봇관련 수동봇 방만들기(Please Wait, Create)실패 해결책(세번째 수정) 39 루키아 2006.07.06 2.2k
247 봇관련 어세 레어 클러 이니 입니다...수정 16 goodgame 2006.07.05 2.1k
246 봇관련 XPBot 공방런시 포탈에러(타인의 포탈로 이동시) 해결법 3 공중부양 2006.07.01 1.4k
245 봇관련 캐릭별로 물약 먹는 수치 다르게 설정 6 Jum[A1L] 2006.07.01 1.3k
244 봇관련 xp2.3h - 사냥 중 물약줍기, 벨트 채우기 관련 패치 1 thething 2006.07.01 2.1k
243 봇관련 봇이 갈수록 느려지면 쓰레기 청소 해 보세요. 40 슬픈사슴 2006.07.01 4.2k
242 봇관련 수동(d2jsp.exe) 사용시, 계정별 starter 설정 1 thething 2006.06.30 2.3k
241 봇관련 참이니.... 이게 빠져있나 확인 해보아요 13 사령관정복자 2006.06.29 3.1k
240 봇관련 아시아1 봇발런 블랙리스트입니다.- 정보공유 31 Jum[A1L] 2006.06.27 2.1k
239 봇관련 수동봇(d2jsp) 방 만들때 시간조절하기 7 디아블로™[A1] 2006.06.26 1.8k
238 봇관련 에쉴/콜드 아머 스왑무기로 소서리스 봇순이의 스킬을 조금 아껴보자. 7 [A1L] Ke2X 2006.06.25 2.1k
237 봇관련 XP봇 사냥도중 포탈열고 왔다갔다 춤출때 13 공중부양 2006.06.24 1.9k