Skip to content

팁 게시판

스태틱을 사용하는 봇소서의 공격방식 변경

분류 봇관련 조회 수 1,600 추천 수 6

봇소서의 공격 방식에 대해서 말하기 전에 봇이 주변을 정리하는 루틴은 기본적으로 다음과 같습니다.

1. 주변 몹의 리스트를 만든다. (NTC_FindUnit(NTC_UNIT_MONSTER))
2. 몹이 없거나 무시하는 몹의 리스트에 있는 몹밖에는 없으면 주변 정리를 종료한다.
2. 리스트에서 가장 가까운 몹을 확인한다.
3. 확인된 몹에 한 번의 공격을 가한다.
4. 공격이 안되는 몹은 무시하는 몹의 리스트에 추가한다.
5. 1부터 다시 반복한다.

여기서 핵심적인 부분은 가장 가까운 몹부터 공격한다는 것과 공격 대상이 된 몹을 죽을 때까지 공격하는 것이 아니라 한 번의 공격만을 가한다는 점입니다. 전에는 거리 확인도 하지 않았고 한 번 공격 대상이 된 몹이 있으면 그 몹이 죽을 때까지 계속 그 몹만 공격하는 방식이었읍니다. 그래서 몹에 둘러쌓여서도 저 멀리 있는 몹만 계속 공격하는 경우가 종종 관찰되었읍니다. 보면서 매우 답답한 점이었는데 새 버전에서는 아주 멋있게 좋아졌읍니다.

이제 위의 3.번에 언급한 한 번의 공격이 어떻게 이루어지는지 살펴봅시다. 기본적인 흐름은 다음과 같습니다.

1. 일단 자신의 상태를 체크합니다. 저주에 걸렸는지 포션은 있는지 용병은 살아있는지 등등을 체크합니다.
2. 1의 체크에서 필요하면 마을에 갔다 옵니다.
3. 처음 공격(NTConfig_AttackSkill[0])을 할 때인지 판단합니다.
4. 처음 공격을 할 때이면 처음 공격을 수행합니다. 공격이 성공적으로 가해지면 공격 루틴을 끝냅니다.
5. 처음 공격을 할 때가 아니면 스태틱 공격이 설정되어 있는지 확인합니다. (NTConfig_CastStatic < 100)
6. 몹이 라이트닝 내성이 아니고 몹의 피가 스태틱 변수보다 크면 스태틱 공격을 가합니다. 공격이 성공적으로 가해지면 공격 루틴을 끝냅니다.
7. 처음 공격도 스태틱 공격도 해당되지 않으면 몹의 종류에 따라 주력 공격을 합니다. (NTConfig_AttackSkill[1] / NTConfig_AttackSkill[3])
8. 주력 공격이 캐스팅 딜레이에 걸려있으면 부공격을 합니다. (NTConfig_AttackSkill[2] / NTConfig_AttackSkill[4])
9. 7/8의 공격이 성공하면 공격 루틴을 종료합니다.
10. 7/8의 공격에 몹이 내성이면 보조 공격을 합니다. (NTConfig_AttackSkill[5])
11. 10의 공격이 캐스팅 딜레이 상태이면 보조 공격의 부공격을 합니다. (NTConfig_AttackSkill[6])
12. 10/11의 공격이 수행되면 공격을 끝냅니다.
13. 공격 루틴이 이 단계까지 오면 몹은 내성있는 경우인데 마지막으로 용병이 있는지 체크합니다. 현재 공격하는 몹이 보스몹이고 용병이 있다면 의미없는 주력 공격을 하고 공격 루틴을 종료합니다. (일단 이 단계가 계속 반복되면 언젠가 용병이 몹을 잡게되겠죠)
14. 공격도 안되고 용병도 없다면 봇은 이 몹을 공격할 능력이 없음을 표시하고 공격 루틴을 종료합니다. 이 몹들은 주변 정리 루틴의 4번째에 있는 무시몹 리스트에 올라가게 됩니다.

위의 공격 방식은 봇이 강할 때나 스태틱을 사용하지 않는 경우 큰 문제가 없읍니다. 하지만 아템이 별로 없는 오리봇은 스태틱을 사용하지 않으면 몹 잡는 시간도 오래 걸리고 따라서 치킨될 확률도 커집니다. 그런데 스태틱을 사용하는 경우 봇이 강하지 않으면 위의 공격 방식은 다소 문제가 있을 수 있읍니다.

위의 공격 방식에 따르면 몹의 피가 스태틱 변수보다 작아지기 전까지 봇은 계속 스태틱 공격만을 합니다. 그 동안 봇은 몹에 둘러쌓여 계속 공격받게 됩니다. 특히 메테오 공격처럼 캐스팅한 다음 약간의 시간 후에 떨어지는 공격은 다른 공격에 의해 몹들이 없어진 후에 떨어지는 경우가 종종 관찰됩니다. 결국 메테오같은 공격은 매우 비효율적인 공격이 되고 귀중한 스킬 포인트를 낭비하는 것이 됩니다.

이런 저런 이유로 생각해 본 것이 위의 공격 방식에 약간의 수정을 가하는 것입니다. 수정의 핵심은 스태틱 공격을 계속 하는 것이 아니라 한 번 스태틱 공격이 수행되면 일시적으로 스태틱 공격을 막고 다른 공격이 이루어지게 하는 것입니다. 스태틱 공격을 할지 말지를 결정하는 변수는 NTConfig_CastStatic이므로 스태틱 공격이 성공하면 이 값을 100으로 합니다. 이 때 원래의 값은 다른 변수에 일시적으로 저장합니다. 다른 공격이 수행되면 NTConfig_CastStatic의 값을 원래 값으로 다시 바꿉니다. 그러면 다음 번 공격 때는 스태틱 공격이 수행될 것입니다.

이렇게 수정하면 스태틱 한 번 오브나 메테오 한 번 (오브메테오 봇소서의 경우) 번갈아 가면서 공격합니다. 오리에서는 스태틱에 제한이 없으므로 NTConfig_CastStatic의 값을 아주 작게 잡아도 아무 문제가 없읍니다. 어차피 중간중간에 다른 주력 공격도 하기 때문입니다. 몹의 종류에 따라 적절한 NTConfig_CastStatic 값이 다 다른데 하나의 값을 써야하므로 NTConfig_CastStatic의 값을 정하는게 다소 애매한 경우가 많습니다. 그래서 몹의 종류에 따라 NTConfig_CastStatic의 값을 달리하는 여러가지 팁이 사용되는 것으로 알고 있읍니다.

또 다른 장점은 오브를 주력으로 사용하는 경우 스태틱 중간 중간에 콜드 공격을 사용하므로 몹들을 얼리거나 느려지게 하여 공격받는 위험을 줄일 수도 있읍니다. 메테오 같은 경우에도 중간 중간에 시전하므로 몹의 피가 꽤 많은 상황에서 떨어지게 되어 몹의 피를 효과적으로 줄일 수 있읍니다. 또한 스태틱 자체의 효력도 무시할 수 없읍니다. 몹들이 봇 주위로 모이면 모일수록 범위 공격인 스태틱으로 깍는 몹들의 피값의 총합은 매우 크므로 충분히 한 번의 캐스팅의 가치가 있읍니다.

래더가 다시 시작되어 오리에서 맨땅으로 봇소서를 돌릴려니 워낙 약해서 이런 생각 저런 생각하다가 꽤 효과가 있는 듯하여 소개합니다. 실제로 위의 수정을 적용하였더니 치킨이 많이 줄어들었읍니다. 오리에서 봇을 사용하시는 분들에게 추천합니다.


실제 스크립트 수정

NTAttack.ntl 파일을 열어 스태틱값을 저장할 변수를 파일의 앞 부분에 추가합니다.

var _NTA_SkillHand = new Array(7);
var _NTA_SkillDamage = new Array(7);
var _NTA_SkillRange = new Array(7);
var _Save_Static; //추가

그 다음 소서 공격 함수 NTA_SorceressAttackInt()를 찾아서 스태틱 공격 부분에서 다음 부분을 찾읍니다.

 if(NTConfig_CastStatic < 100 && parseInt(target.hp*100/target.hpmax) > NTConfig_CastStatic &&

NTA_GetResistance(target, NTA_DAMAGE_LIGHTNING) <= 80)
 {
 .
 .
 .
 if(_staticlevel > 0)
 {
 if(!NTC_CastSkill(42, NTC_HAND_RIGHT, _castx, _casty))
 return 2;
 _Save_Static = NTConfig_CastStatic; //추가
 NTConfig_CastStatic = 100; //추가
 return 3;
 }

그러면 한번 스태틱 공격이 성공한 다음 스태틱 변수를 100으로 설정하여 다음 번 공격에서는 스태틱 공격이 수행되지 않습니다.

마지막으로 다른 공격을 한 다음 스태틱 공격을 다시 가능하게 하기 위하여 원래의 값으로 다시 고쳐줍니다.

 if(NTA_GetResistance(target, _NTA_SkillDamage[_primaryindex]) <= 90)
 {
 if(!NTA_SorceressCastSkillInt(_primaryindex, target))
 return 2;
 NTConfig_CastStatic = _Save_Static; //추가
 return 3;
 }

 if(NTConfig_AttackSkill[5] > 0 && NTA_GetResistance(target, _NTA_SkillDamage[5]) <= 80)
 {
 if(!NTA_SorceressCastSkillInt(5, target))
 return 2;
 NTConfig_CastStatic = _Save_Static; //추가
 return 3;
 }

하면 수정은 완료됩니다.
댓글14
  • 안졸리나졸려 2010.04.20 00:40
    내성몹이 있을때 주변 정리부터 잡으면 내성 파콜드라도 용병으로 잡기 스태틱이 들어가도 문제 없이 잡죠. 그런데 모든 설정이 주변 정리 모든 몹으로 되는게 아니고. 대부분 보스로 되는데서 문제가 생기더군요. 랜덤하게 나오는데요. 2원소 내성이 나오면 스태틱 대신 우선 순의가 부하 몹 1원소짜리로 주변 정리를 하고 보스 스태틱 용병으로 잡기가 되면 좋을것 같은데요. 고정되어 나오는것도 아니고 무조건 주변정리로 모든 사냥터가 그렇게 설정되는것도 그렇고요. 내성몹이 나오면 무조건 용병잡기 스택이 들어가더군요. 몹이 바글 바글 한데요. 보스몹 한마리 남앗을 때야 스택 하면서 용병이 잡으면 되지만요. 여러 사냥터에서 랜덤하게 나오는데 계속해서 보스 , 주변 정리 옵션이 있다고해도 바꾸기가 좀 뭐한것 같던데요 옵션도 없는 것이 많고요.
  • 임털[A3L] 2010.04.20 03:21
    안졸리나졸려// 보스냐 아니냐는 상관없는데요. 어떤 몹이던 스태틱만 처음에 계속 때리는 것이 아니고 스태틱과 다른 공격을 섞는다는 의미인데요. 제가 잘못 이해하였나요? 그리고 공격 순서에 약간 변경을 준 것이므로 옵션은 있을 것이 없읍니다.
  • 안졸리나졸려 2010.04.20 03:41
    임털[A3L]// 그럼 비효율적일것 같은데요. 내성이라 공격 스킬이 없다고 봐야 하거든요. 당연히 졸몹이 1원소니까 맞겠지 생각하겠지만. 파콜 내성이 나올때 졸몹이 콜드만 나오진 않습니다, 파이어로 공격할때 파이어 내성이 딱 막고 버티고 있죠. 예전에 막공격하게 해놓은게 있더라고요 3번째 원소 공격을 그리고 보스몹을 향해서 몹을잡을때 어차피 내성이잖아요. 헛발만쏘고 있는거죠 다굴맞아도요. 그런데 파오브의 경우 졸몹 부터 정리하고 잡도록 되어 있는것은 파콜이 나와도 다잡고 보스를 잡기 때문에 보스몹 한마리 밖에 없죠 내성몹을 용병이 잡도록. 근데 모든 사냥터를 그렇게 맞추기 보다는 3번째 원소가 발동 할때 처럼스태틱이 발동하기 보다 먼저 졸몹정리 우선으로 파콜 내성 스택 용병 잡기 처리되도록 하면 좋지 않을까요. 스택 발동하듯이 제가 수정할 능력이 되면 그렇게 하고 싶지만 능력이 안되니...
  • 임털[A3L] 2010.04.20 06:49
    안졸리나졸려// 내성에 대해 자꾸 언급하시는데 위의 수정은 내성과는 상관없읍니다. 헤븐리봇 쓰시면 한 번 해보세요. 오리라면 차이가 느껴지실 겁니다. 날아다녀님봇은 잘 모르겠읍니다. 대세는 날아다녀님 봇인거 같습니다만.
  • Gods_수노 2010.04.21 22:35
    어제까지 헤븐리스톤님 봇을 돌리다가 오늘 날아다녀님 봇으로 바꿔서 퇴근 후 확인해봤습니다. 치킨률이 50% 이상이네요. 특히 소서의 경우 사냥속도와 스태틱 부분은 헤븐리스톤님 봇이 뛰어나네요.
  • 자판 2010.04.27 11:09
    오랫만에 복귀했는데 참고 하겠습니다 고맙습니다~
  • MOM-유진 2010.04.28 21:37
    오..꼭필요한 정보네요 .좋은정보 감사합니다.유용하게 쓸게요~
  • 블르스조아 2010.05.03 15:13
    좋은 정보 올려주셔서 정말 감사드립니다 ~~
  • 듀엣 2010.05.22 20:07
    오늘두 하나 배우고 가는군요!! 감사 드리고 즐디아 하십시요!!!
  • EvaGreen 2010.05.24 12:48
    유익한 정보 감사합니다 ^^ 많은 도움되었습니다
  • 극체라소서 2010.06.20 18:12
    좋은 정보 감사합니다. 정말 수고 많으셨어요.
  • 조용히겜이나 2010.07.07 18:46
    좋은정보네요.많이 배우고 갑니다. 감사합니다.
  • 해해막고 2011.04.13 23:30
    좋은정보네요.많이 배우고 갑니다. 감사합니다.
  • 으흥으헝 2011.07.06 22:56
    깔끔하네요 좋은정보감사합니다

팁 게시판

번호 분류 제목 글쓴이 날짜 조회
공지   게시판 푸시 알림 / 통합 앱 서비스 31 file 트디개발자 2023.09.20 831.1k
공지 디아관련 에테리얼 벅큐빙 표 219 eunnanoDiablo™ 2008.03.05 140.2k
공지 디아관련 케릭별 갑옷 착용 모습 325 수린[아빠] 2009.06.09 111.4k
공지 디아관련 디아블로 각종 팁과 정보 간추림 입니다 (_ _) 1547 조은아저씨 2010.05.24 211.6k
공지 봇관련 유니크 업글 표 366 file 카인 2013.11.02 412.8k
676 봇관련 참고 하셨음 하여.... 19 엄마엄마 2010.04.21 1.5k
675 봇관련 이뮨 몬스터 피해가기(핀들,나라하크) 20 file 소스 2010.04.21 2.0k
674 봇관련 초보자분들을 위한 아이템이니 편집 및 작성의 이해 62 에너지절약 2010.04.20 4.2k
673 봇관련 D2NT3.1 버젼 사용 시 카운테스에서 MyAT-KillBoss() 에러 조치 방법 19 새벽이슬님 2010.04.20 1.6k
672 봇관련 D2NT3.1 날아다녀님 새버전 에테노멀템 큐빙하기 17 라이브뤄리 2010.04.20 1.9k
671 봇관련 샵봇 내장하기 20 임털[A3L] 2010.04.20 1.8k
670 봇관련 아이템 이니 수정시 팁 22 이카리 2010.04.20 1.5k
> 봇관련 스태틱을 사용하는 봇소서의 공격방식 변경 14 임털[A3L] 2010.04.19 1.6k
668 봇관련 오리지널 이라샤아뮬 줍기 이니 입니다. 10 제이 2010.04.19 1.4k
667 봇관련 핀들잡고 나락잡으러갈때 안전성 확인하는 장소 변경하기 9 에너지절약 2010.04.19 993
666 봇관련 캐릭파일에서 아이템이니 경로 설정해주기 17 에너지절약 2010.04.19 1.8k
665 봇관련 cpu점유율+메모리 사용량을 낮추는 방법 (비스타/윈7 이용자용) 25 teddy 2010.04.19 3.4k
664 봇관련 오리지날 액4 바바사냥팁 [봇] 15 카인 2010.04.19 1.5k
663 봇관련 스태틱 거리 안맞는 문제 수정 (NTBot4.2_1) 9 thething 2010.04.18 1.3k
662 봇관련 2컴으로8케릭 쫄봇 조인(스샷첨부/내용수정) 61 artprince20 2010.04.18 5.0k
661 봇관련 카오스에서 벽뒤에 있는 몹을 무한 공격할 경우 해결방법 31 기분좋은날 2010.04.17 1.3k
660 봇관련 쫄봇을 이용한 퀘드랍 자동 사냥 방법(_NTBot4.2_0) 49 thething 2010.04.17 3.1k
659 봇관련 파오브 소서 이뮴에 관해 아주 쬐금 쉽게 잡는 방법입니다. 22 날다람쥐 2010.04.16 1.6k
658 봇관련 쫄봇에게 원하는 분기에 함성/마법 등 받는 방법 - NTBot4.2_0 36 thething 2010.04.16 2.9k
657 봇관련 기사와 파티 중 메세지 후 바로 나갈 경우 12 gms_guardian 2010.04.15 1.0k