Skip to content

팁 게시판

d2jsp_xp2.3h - 스태틱 시전시, 거리 못맞추는 오류 수정 (수정)

분류 봇관련 조회 수 1,623 추천 수 0

소서 스태틱 공격 시, 보스 위치가 시전 범위 밖인데도 그대로 제자리에서 시전하는 문제를 해결한 것입니다.

'_dx' is not defined ... 등의 오류 메시지가 뜨는 증상을 위한 패치 이기도 합니다.


XP_include.d2l 에서

// Function by wurscht
function XP_CastStatic(target) {

....<중략>.....

 //이하 부터 함수 끝까지 수정

 // Set the range from target
 var _r = 3 + me.getSkill(42,0); // fix - TT (미확)

 //var _endstaticpos = new XP_Coord(me.x,me.y);

 for (n = 1; n <= XP_Static && target.hp >= _maxstatichp; n+=1) {

 var _tdist = XP_GetDist(me,target);
 var _itry = 1;
 while ((_tdist > _r) && (_itry <= 5)) {

 var _dx = me.x - target.x;
 var _dy = me.y - target.y;

 var _nx = me.x - Math.round((_dx * (_tdist - _r)) / _tdist); 
 var _ny = me.y - Math.round((_dy * (_tdist - _r)) / _tdist); 
 
 // Move to range
 commAttack.GotoDest(_nx,_ny);

 // Compute distance after move
 _tdist = XP_GetDist(me,target);
 _itry+=1;
 }
 DC_DPrint("Casting Static Field #" + n);
 DC_DoCast(42,0,target); // "Static Field"
 }

 while (me.getState(121)) { delay(10); }

 // Only return to start position if target isn't there
 //_tdist = XP_GetDist(me,target);
 //if (_tdist > 3) { commAttack.GotoDest(_endstaticpos.x,_endstaticpos.y); }

 if (XP_CheckUtil(target)) { return; }

} //end of function






#### 7/21
크리스탈소드님께 정보를 얻어 _r 구하는 공식 수정했습니다.

댓글16
  • 미친소 2006.07.20 02:48
    감사합니다 한번 써봐야 겟네요^^
  • 불타는소서 2006.07.20 08:36
    죄송한데요..초보라서 저렇게써주시면 이해가 잘안되요 ㅜㅜ XP_include.d2l <<--요화일을 수정해서 화일 자체를올려주세요... 위에 처럼 적어주시면....당췌 어케하는지 더 모르겟어요....용량두얼마안되자나요^^ 부탁합니다
  • Britz[A1L] 2006.07.20 10:18
    초보라도 자세히정독하시면 쉽게 이해하실듯합니다만..최소한의 노력도 안하시는건가요..? 초보도 꾸준이 노력하시면 고수가 되실수있습니다. 초보라는 이름하에 노력도안하시고 자료만 얻으시려는거같아 안타깝네요.
  • 허거둥.. 2006.07.20 10:31
    이야..이런게 정말 필요한거죠 ㅎ 스태틱 안맞아서 그냥 스태틱 스킬 많이 올린 참담함^^
  • 바다 2006.07.20 13:26
    얌봇 오리지널 스태틱함수입니다.. function XP_CastStatic(target) { switch(me.diff){ case 0: _MaxStaticHP = 0; break; case 1: _MaxStaticHP = 43; break; case 2: _MaxStaticHP = 65; break; } if (!target || !DC_CheckSkill(42) || target.getStat(41) > 99 || target.hp < _MaxStaticHP) return; if ((XP_TimedFirst) && (_XP_TimedSpells.length > 0)) { DC_DPrint("XP_CastStatic() : XP_TimedFirst : Casting Timed #" + _XP_TimedSpells[_XP_CurrentTimed] + " on index " + _XP_CurrentTimed); if (_XP_TimedSpells[_XP_CurrentTimed]==56) { DC_DoCast(_XP_TimedSpells[_XP_CurrentTimed],0,target.x,target.y); // was XP_DropMeteor function. } else { DC_DoCast(_XP_TimedSpells[_XP_CurrentTimed],0,target.x,target.y); } _XP_CurrentTimed+=1; if (_XP_CurrentTimed == _XP_TimedSpells.length) { _XP_CurrentTimed = 0; } if (XP_CheckUtil(target)) { return; } } // Set the range from target var _r = 1.0 + 0.668 * me.getSkill(42,0); _XP_EndStaticPosition = commPather.FindClosestWalkable(new XP_Coord(me.x,me.y).x, new XP_Coord(me.x,me.y).y); // Compute delta-x and delta-y var _dx = me.x - target.x; var _dy = me.y - target.y; // Compute Distance to Target var _tDist = Math.floor(Math.sqrt(Math.abs((_dx * _dx) + (_dy * _dy)))); // Compare distance from target to the range var _iTry = 1; while ((_tDist > _r) && (_iTry <= 5)) { // Compute the x and y coordinates var _nx = me.x - Math.round((_dx * (_tDist - _r)) / _tDist); var _ny = me.y - Math.round((_dy * (_tDist - _r)) / _tDist); // Move to range DM_MoveTo(_nx,_ny); // Compute distance after move //if (target.classid == 242) { delay(450); } _dx = me.x - target.x; _dy = me.y - target.y; _tDist = Math.floor(Math.sqrt(Math.abs((_dx * _dx) + (_dy * _dy)))); _iTry++; } for (n = 1; n <= XP_Static && target.hp >= _MaxStaticHP; n+=1) { DC_DPrint("Casting Static Field # " + n); DC_DoCast(42,0,target); // "Static Field" } while (me.getState(121)!== 0) { delay(10); } //Only return to start position if target isn't there _dx = _XP_EndStaticPosition.x - target.x; _dy = _XP_EndStaticPosition.y - target.y; _tDist = Math.floor(Math.sqrt(Math.abs((_dx * _dx) + (_dy * _dy)))); if (_tDist > 3.0 && !(target && (target.classid==211 || target.classid==243 || target.classid==544 || target.classid==45))) { DM_MoveTo(_XP_EndStaticPosition.x,_XP_EndStaticPosition.y); } if (XP_CheckUtil(target)) { return; } }
  • thething 2006.07.20 17:43
    xp것이 얌봇에서 훔쳐온 함수 같은데(xp가 거의 그렇지만), 얌봇쪽 함수도 약간 문제가 있습니다. // Set the range from target var _r = 1.0 + 0.668 * me.getSkill(42,0); 이부분도 잘못되어 있고, 거리측정해서 이동 후에는 보스 위치 검사없이 스태틱을 연사하기 때문에 미스가 발생 할 소지가 있습니다.
  • 크리스탈소드[A2S] 2006.07.20 19:12
    제가 쓰고 있는 것이랑은 조금 다르네요. 제 경우에는 약간 여유를 두어서 var _r = 1.0 + 1.0*me.getSkill(42,0)로 사용하고 있습니다.
  • thething 2006.07.20 19:49
    아무튼 위함수에서 xp 원본의 황당한 점은 _dx, _dy가 누락되었다는 것입니다. 이런 소소한 실수가 아주 많아요 xp 스크립트는. 점점 얌봇을 쓰고 싶어지네요. :D
  • 바다 2006.07.20 23:29
    var _r = 1.0 + 0.668 * me.getSkill(42,0); 이부분은 보스랑의 거리를 추산하는 게 아니라, 자신의 스태틱 거리를 계산 하는 부분입니다.. 조금 잘못 이해하는 부분이 있어서 적어봅니다... 즉, 몹의 검사가 필요가 없죠... 몹의 검사는 아래부분에서 본격적으로 하자나요....
  • thething 2006.07.21 01:21
    바다 / 네, _r은 스태틱 시전 범위죠. 엄밀히 하면 2.6 + 0.668*스태틱스킬레벨 입니다. 스태틱1렙이 3.3 , 스태틱11레벨이 10 이죠. 뭐, 원래 함수 저작자는 넉넉하게 마진을 설정하느라 +1.0 해준 것일 수도 있습니다. 제말은 얌봇의 for (n = 1; n <= XP_Static && target.hp >= _MaxStaticHP; n+=1) { DC_DPrint("Casting Static Field # " + n); DC_DoCast(42,0,target); // "Static Field" } 부분에서 보스위치 검사없이 무조건 스태틱을 연사 하므로, 그 사이 보스가 이동하게 되면 miss가 발생할수 있다는 겁니다. 실제로 메피 같은 경우는 친절하게 달려나와 반겨주는 경우가 빈번하기 때문에 애초에 계산한 거리는 무용이 될수 있습니다. 그래서 스태틱 매회마다 보스위치를 검사해서 시전범위내로 이동하는 걸로 수정한 겁니다.
  • thething 2006.07.21 01:58
    그런데, 디아블로의 yard개념이 d2jsp 좌표체계에 그대로 대응되지 않는다면 제가 말한 _r구하는 공식은 잘못된 것이죠. 체감상은 그럭저럭 맞는 듯 하지만..
  • thething 2006.07.21 02:54
    디아상의 1 yard = 1.5 (tile unit) 이라는 첩보를 크리스탈소드님께 받아왔습니다. 그럼 마진 잡아서 _r = 3 + me.getSkill(42,0); 로 해봐야겠네요.
  • 바다 2006.07.21 13:05
    일리는 있지만, 바알이나 메피 빼곤 별로 움직이는 몹을 못보았습니다... 대부분 접근전을 하는 관계로, 스태틱의 정확한 위치의 검사가 필요한지도 약간의 의문부호는 남습니다.. 하지만 좋은 정보입니다...
  • KTJH 2006.07.21 14:50
    님 봇돌리는것좀 도와주십시오 제발 부탁드립니다.. ㅜㅜ.. 제가 전화 드리거나 .. 원격으로라도 좀해주십시오 ㅜㅜ 제폰번호 010 9764 0630 입니다 제발 좀 도와주십시오.. 연락좀 주십시오.. ㅜㅜ.. 보답은 꼭 해드립니다
  • 미스터빈 2010.08.01 01:24
    이런 좋은 정보 정말 감사드립니다^^*~~
  • 으흥으헝 2011.07.05 23:13
    오호 좋네요 감사합니다! 잘쓸께요~

팁 게시판

번호 분류 제목 글쓴이 날짜 조회
공지   게시판 푸시 알림 / 통합 앱 서비스 31 file 트디개발자 2023.09.20 830.1k
공지 디아관련 에테리얼 벅큐빙 표 219 eunnanoDiablo™ 2008.03.05 140.1k
공지 디아관련 케릭별 갑옷 착용 모습 325 수린[아빠] 2009.06.09 111.3k
공지 디아관련 디아블로 각종 팁과 정보 간추림 입니다 (_ _) 1547 조은아저씨 2010.05.24 211.6k
공지 봇관련 유니크 업글 표 366 file 카인 2013.11.02 412.8k
901 디아관련 순차적으로 블록이 진행되고 있다고 합니다. 45 a.k.a_Mephisto 2006.07.22 2.6k
900 봇관련 !!지금 돌리는봇 계정!! 34 황비홍 2006.07.22 4.0k
899 디아관련 계정블럭에 대한 블리자드의 글 50 봉구입니다 2006.07.22 3.3k
898 봇관련 소서리스 이뮨관련 보스어택 함수 수정법. 5 바다 2006.07.21 1.4k
897 캐릭 육성 1.11 west ladder 빠른 바할런 채널(Op dt-baal) 8 Cindy 2006.07.20 1.7k
> 봇관련 d2jsp_xp2.3h - 스태틱 시전시, 거리 못맞추는 오류 수정 (수정) 16 thething 2006.07.19 1.6k
895 디아관련 [팁] 해머딘으로 무한 트리런을 돌려보자! 33 프레이어[A1L] 2006.07.19 6.5k
894 봇관련 메피 좀더 가까이 붙어보자 [MephXP.d2j 파일내 좌표 수정] 10 Yellowstick 2006.07.18 1.8k
893 일반 시디키 유출 해결책 살짝만 공개합니다. 41 아취모델 2006.07.18 5.7k
892 봇관련 탈셋소서로 바알런봇을 돌려보자 (레벨업용) 14 PhD_소서리스 2006.07.16 4.6k
891 게임관련 드림 정손 버그 케릭은 됩니다~~ 29 미스터빈 2006.07.16 4.9k
890 디아관련 단순한 신뢰-자존심-인내 조합 뎀쥐비교 14 Totenkopf 2006.07.15 3.3k
889 봇관련 네크 봇 원하는골렘을 뽑아보자 (편법이니 주의하세요) 7 아비게일[west] 2006.07.15 2.2k
888 디아관련 맵핵 절대 쓰지마십시오 60 Sanzo 2006.07.14 8.1k
887 봇관련 xp bot 물약먹기-나만의 노하우 7 골드아템 2006.07.13 2.0k
886 봇관련 XP2.3h / FollowXP.d2j 수정 - "BO" 커맨드 문제 9 thething 2006.07.13 1.6k
885 봇관련 팀봇/쫄봇 설정방법 v0.6.1 57 봉구입니다 2006.07.12 6.6k
884 봇관련 xp2.3h / 팀봇 스크립트(FollowXP.d2j) 오류 수정 [글 수정] 13 thething 2006.07.12 1.8k
883 캐릭 육성 Ladder West 1.11 " Elemental Druid for Dueling " Revolution ... 56 Cindy 2006.07.11 2.2k
882 봇관련 수동봇 렐따, 방스틸 및 오류 해결책 16 루키아 2006.07.10 1.8k