Skip to content
봇관련다크 모드

피닉스+드탈 킥씬 봇 스크립트 - 1차 [2010.11.5]

조회 수
1,529
추천 수
8
등록일

0. 히스토리
1. 개요
2. MyAttack.ntl 수정
3. 캐릭터설정이니 수정
4. 하고싶은말...

= 0. 히스토리 =

2010.11.5
*트랩신 호환성 테스트 완료. 기존 트랩신 스크립트는 잘 작동합니다.


= 1. 개요 =

날아다녀님 11차 버전을 기준으로 작성했습니다.

피닉스스트라이커+드래곤탈런을 기준으로 작동합니다.

아직 기존의 트랩신, 혼돈신과 호환해서 작동이 되는지는 테스트 안해봤습니다. - 킥씬+트랩신 형태로 된다는 의미가 아니라, 기존 작성한 트랩신, 혼돈신이 잘 돌아가는지 테스트가 필요하다는 뜻입니다 ^^.
테스트가 필요하지만 잘 돌아가리라 봅니다.
>> 기존 트랩씬으로 돌린 결과 잘 돌아갑니다.

싱글버전에서 테스트해서 액트보스급에 대해선 테스트를 안해봤지만, 아주 아토믹한 함수를 수정한거라 잘 돌아가리라 봅니다.


= 2. MyAttack.ntl 수정 =

우선 원본 MyAttack.ntl을 반드시 백업해놓으시기 바랍니다.

기존의 MyAt_AssassinCast함수를 MyAt_AssassinCastOld 로 이름을 바꾸시고 아래 내용을 기존 함수 위에 추가해 주세요.

function MyAt_AssassinCast(target, isBoss, index, maxAttacks, conviction, sentryClassId)
{
 var _iAttack = 0;
 var _iRetry = 0;
 var _attacks = isBoss ? 8 : 4;
 var _isFlying = !isBoss && MyUn_IsFlying(target);
 var _isVulture = !isBoss && MyUn_IsVulture(target);
 var _targetHp = target.hp;
 
 var _alreadyPU = me.GetStat(320);
 
 var _fr = target.GetStat(39);
 var _lr = target.GetStat(41);
 var _cr = target.GetStat(43);
 
 // 내성에 따른 챠징횟수를 정한다.
 var _cn = 1;
 if(_fr < 100 ) _cn = 1;
 if(_lr < 100 ) _cn = 2;
 if(_cr < 100 ) _cn = 3;

 while (MyUn_CheckLife(target))
 {
 if (_iAttack > maxAttacks && maxAttacks > 0)
 return false;

 if (!MyAt_CheckCollision(target, isBoss, index, _isFlying, _isVulture))
 return false;

 if ((_iAttack % 3) == 0)
 MyPr_CheckPrecast();

 if (!MyUn_CheckLife(target))
 return true;
 if (target.GetState(53))
 return false;

 if (conviction > 0)
 {
 if (!MyAt_CheckConvictionResistance(target, index, conviction, _iAttack > 2))
 return false;
 }
 
 // 피닉신이라면
 if(MyConfig_AttackSkill[index][0] == 280)
 {
 if(_alreadyPU > 0)
 {
 Print(" 진입전에 챠징이 이미 되어 있다면 일단 피니쉬 부터 한다. ");
 // 피니쉬를 쓴다.
 NTC_SwapWeapons(0);
 NTC_CastSkill(MyConfig_AttackSkill[index + 1][0], _NTA_SkillHand[index + 1], target);
 
 }
 else
 {
 if(me.GetStat(320) == _cn)
 {
 // 피니쉬를 쓴다.
 NTC_SwapWeapons(0);
 NTC_CastSkill(MyConfig_AttackSkill[index + 1][0], _NTA_SkillHand[index + 1], target);
 }
 else
 {
 NTC_SwapWeapons(0);
 NTC_CastSkill(MyConfig_AttackSkill[index][0], _NTA_SkillHand[index], target);
 }
 }
 }
 else
 {
 NTC_SwapWeapons(0);
 NTC_CastSkill(MyConfig_AttackSkill[index][0], _NTA_SkillHand[index], target);

 if (index == 0)
 return !MyUn_CheckLife(target);

 if (sentryClassId && MyUn_IsClass(sentryClassId, true, target, 20) < 5)
 return !MyUn_CheckLife(target);

 
 
 if (MyConfig_AttackSkill[index + 1][0] > -1 &&
 me.GetSkillStatus(MyConfig_AttackSkill[index][0]) == 8 &&
 MyAt_GetResistance(target, _NTA_SkillDamage[index + 1]) < 100)
 {
 if (MyConfig_AttackSkill[index + 1][0] == 151)
 {
 if (MyUn_IsWhirlwind(target))
 {
 if (MyAt_Whirlwind(target, isBoss, index + 1, maxAttacks, 4, 14, 4) == 1)
 return true;
 }
 }
 else
 {
 switch (MyConfig_AttackSkill[index + 1][0])
 {
 case 261: // Charged Bolt Sentry
 case 262: // Wake of Fire
 case 271: // Lightning Sentry
 case 272: // Wake of Inferno
 case 276: // Death Sentry
 if (MyAt_AssassinTrap(target, isBoss, index + 1, maxAttacks, conviction) == 1)
 return true;
 break;
 default:
 do
 {
 if (!MyUn_CheckLife(target))
 return true;
 if (target.GetState(53))
 return false;

 if (!MyAt_CheckCollision(target, false, index + 1, _isFlying, _isVulture))
 break;

 if (me.GetSkillStatus(MyConfig_AttackSkill[index + 1][0]) != 8)
 {
 NTC_SwapWeapons(0);
 NTC_CastSkill(MyConfig_AttackSkill[index + 1][0], _NTA_SkillHand[index + 1], target);
 }
 else
 Delay(NTC_DELAY_FRAME);
 } while (me.GetSkillStatus(MyConfig_AttackSkill[index][0]) == 8);
 }
 }
 }
 }
 

 

 while (me.GetSkillStatus(MyConfig_AttackSkill[index][0]) == 8)
 {
 if (!MyUn_CheckLife(target))
 return true;

 Delay(NTC_DELAY_FRAME);
 }
 
 if(_alreadyPU)
 {
 _alreadyPU = me.GetStat(320); 
 Print(" 진입전 피니쉬 시도 후 챠징값 은 : " + _alreadyPU);
 }

 if ((++_iAttack % _attacks) == 0 && maxAttacks > 0)
 {
 if (target.hp < _targetHp)
 _targetHp = target.hp;
 else if (_iRetry++ < (isBoss ? 2 : 1))
 {
 if (!MyMo_MoveTo(target.areaid, target.x + 1, target.y + 1, 0))
 return false;
 }
 else
 return false;
 }
 }

 return true;
}

= 3. 캐릭터설정이니 수정 =

// 공격 설정하기 <-- 이 부분만 아래 내용으로 교체해 주시면 됩니다.

 MyConfig_AttackSkill[0] = [-1, 0]; // 처음 한 번만 공격할 스킬
 MyConfig_AttackSkill[1] = [280, 2]; // 대장 공격할 스킬
 MyConfig_AttackSkill[2] = [255, 2]; // 1번 쿨타임 동안 공격할 스킬
 MyConfig_AttackSkill[3] = [280, 2]; // 부하 공격할 스킬
 MyConfig_AttackSkill[4] = [255, 2]; // 3번 쿨타임 동안 공격할 스킬
 MyConfig_AttackSkill[5] = [280, 2]; // 1, 3번 저항 시 공격할 스킬
 MyConfig_AttackSkill[6] = [255, 2]; // 5번 쿨타임 동안 공격할 스킬
 MyConfig_AttackSkill[7] = [280, 2]; // 1, 3, 5번 저항 시 공격할 스킬
 MyConfig_AttackSkill[8] = [255, 2]; // 7번 쿨타임 동안 공격할 스킬


= 4. 하고 싶은 말 =

모든내성을 커버하기 위해서 피닉스스트라이커를 선택했습니다.

어택스킬 인덱스 중에 2, 4, 6, 8 이 피니쉬스킬에 해당되고, 꼭 드탈아니래도 피니쉬되는 스킬로 지정해주시면 됩니다.

봇운용의 기본은 수수갑옷이신거 잘 아시죠? ^^.
댓글 12
  • 댓글 #260618

    음.. 그런데 봇용 어쌔를 키우려면 스킬/스탯/장비는 어찌해야 하는건가요..;
  • 댓글 #260621

    피닉신이나 킥신 육성강좌가 많이 잇을겁니다. 참고하세요^^
  • 댓글 #260624

    이런 글들을 볼때면 혹시 프렌지 바바는 봇을 돌릴수 없을까 생각해봅니다 ㅎㅎ 바바를 워낙 좋아하는데 아직 프렌지바바는 봇 돌린다는 이야기가 없는것 같아서요. 물론 저는 보통 프렌지로 수동 앵벌(을 빙자한 필드 마실)을 주로 합니다만.
  • 댓글 #260627

    오오. 이런 자료가 있다니. 추천 한 방 꾹 눌러드립니다.
  • 댓글 #260630

    바바는 해본적이 없어서 프렌지바바 사냥패턴이 어떤가요? 킥씬이 끝나는되로 그것도 한번 해보면 재밌을것 같네요 ^^.
  • 댓글 #260633

    저도 어쌔 키우면 꼭 해보고 싶네요.. 캐릭 이니 말고 ntl파일 만지시는 분들 정말 대단하다고 생각합니다. 저는 무슨 소리인지 전혀 모르겠던데^^;
  • 댓글 #260636

    프렌지 바바라면 거의 햄딘과 같은 패턴이 될것 같습니다. 수수를 안끼고도 잘 다니는 바바지만, 봇을 전제로 한다면 텔레는 필수 같습니다. 텔레보다도 더 빠른 이동 속도를 보여주는 프렌지바바지만, 너무 빨라서 랙이 걸릴 정도니까요... 그리고 걷기모드에서 텔레로 이동후 몹을 잡는다면, 디펜에 대한 페널티가 없어져서 생존에 도움도 될듯 합니다. 수동으로 할때도 이동시 달리기 모드로 돌진후 타격시 걷기로 바꾸기도 합니다. 보통은 몹이 녹지만 우버할때나 그타 유닉 떼거지 등장때는 혹시나 해서 그렇게 합니다. 사냥 패턴은 주기적인 함성과 주공격 스킬로는 프렌지위주에, 물리내성몹은 버서크를 이용합니다. 수동 컨트롤때는 마우스로 바닥찍고 휘리릭 돌리지만, 주 앵벌 대상몹을 머리 찍을경우 주위몹이 있을때는 주무기로 대상몹/보조무기로 주위몹을 번갈아 때립니다. 주위에 몹이 없을 경우는 주 대상몹만 연타합니다. 봇 사냥시라면 주요 타겟 몬스터 주위로 텔레하여 머리찍기, 타겟 없어질 경우 주위 몹 대충 정리시까지 머리찍기(이때 이동은 워낙에 빠르니 굳이 텔레를 안해도 충분 할겁니다) 이런식으로 하면 될겁니다. 어떻게 보면 파볼 소서 같기도 하네요. 프렌지가 주위몹도 같이 공격하니깐요. 저같은 경우는 저렴하게 트리를 생각하지 않고 필드를 주무대로 할경우는 스테틱 시전옵이 달린 말렛이나 스컬지로 몹 피를 50% 깍고 무지막지만 뎀지로 녹이면서 다닙니다. 프렌지의 장점은 타격시 시전옵이 잘터진다는 겁니다. 쌍 말렛으로 다닐때 공속이 느린거 같아도 스태틱과 어레가 높다는 이점으로 생각보다 빠른 사냥이 가능하더군요. 좀 여유가 된다면 마소 페이즈+괴뇌or 신/구라세도 상당히 좋습니다. 마직막으로 했을때 마소와 고뇌를 들고 신라세를 예비로 들고 다녔는데그렇지만 필드를 주 무대로 할경우 굳이 마소까지 안들어도 상관이 없고 저렴하게 세팅해서 다녀도 무리는 없더군요. 봇케릭이니만큼 매찬도 중요하다고 본다면 수수와 배추 기드참 정도로 매찬을 올릴수도 있겠습니다.
  • 댓글 #260645

    어쎄신 하나 육성 해봐야 겠네요 ^^ 정보 감사합니다.
  • 댓글 #260648

    좋은 정보 감사 합니다 도움 많이 되었습니다....................
  • 댓글 #260651

    피닉스로 차징은 하는데.. 3차징을 한후에도 드탈로 마무리를 안하는데.. 어째서그런건가요??ㅜ
권한이 없습니다.
다크 모드