Skip to content
봇관련다크 모드

로레,라탭완드 스왑사용(날아다녀님 4.2봇)

조회 수
2,416
추천 수
10
등록일
http://blog.naver.com/iwchoi76/60105305264
전에 강좌에도 올렸듯이
(스톤리헤븐님 4.2봇 적용)
-> http://tradia.me/diablo2/diablo2_tips/222656

이번에는 날아다녀님봇에 적용하는

서브 스왑무기로 로레(91),라탭(82) 완드를 스왑으로 사용하는 방법입니다.
(캐릭터가 약하고 적당한 장비가 없으시다면 써보시는것이 좋습니다. 효율은 아주 그만입니다. :)

스왑무기에 붙은 랩은 높을수록 시전 범위가 넓어집니다.
되도록이면 랩이 높고 횟수가 많은 것을 사용하세요


우선 날아다념님 v4.2봇은

MyAt_KillBoss()에서 보스(몬스터)를 잡긴하나

안다,듀리엘,메피는 공격부분을 따로 파일로 만들어 사용하셔서
killboss()함수에 넣는거만으로 해결이 안됩니다.

따라서 디아,바알 공격시에는 KillBoss()에
스왑으로 로레(라탭)완드를 사용하게 넣어줘야 하고

안다,듀리엘,메피는 각각 파일에 들어있는 Kill()함수에 넣어주어야 합니다.


[사전작업: 주의사항]
* 반드시 봇 시작전 스왑 했을때 스왑 무기을 오른쪽 스킬로 지정후 봇을 실행시켜야 합니다.
가끔 죽거나 횟수내구가 닳으면 수동으로 설정하거나 수리를 해주셔야 합니다.

[수정방법]
위치 : scripts\libs\common\myAttack.ntl (수정)

(1) myAttack.ntl의 맨끝줄에 함수 추가

//맨 끝줄에 추가 ==============================================
function NTC_SwapWand(skillid, usehand, target)
{
 NTC_SwapWeapons(); //무기 스왑(스왑무기 완드 지정)
 NTC_Delay(NTC_DELAY_FRAME); //추가 
 if(me.GetSkill(usehand) == skillid)
 {
 NTC_CastSkill(skillid, usehand, target); //공격무기 시전
 NTC_Delay(NTC_DELAY_FRAME); //추가
 }

 NTC_SwapWeapons(); 
}
//==================================================================
=> 에러 체크 구문을 넣어서 스왑된 상태에서 오른쪽 스킬에 완드의 스킬(로레,라탭)이
지정되어 있지 않으면 원래대로 스왑시킵니다. 에러는 안나지만 스왑무기 마법시전은 안함.

(2) 보스별 추가
[보스위치: 안다, 듀리엘, 메피 ]

파일: scripts\NTBot\botsMyAndariel.ntl
함수: MyAn_KillAndariel() 함수

파일: scripts\NTBot\bots\MyDuriel.ntl
 함수: MyDu_KillDuriel(range, move)함수 

파일: MyMephisto.ntl
 함수: MyMe_KillMephisto()함수

각각의 파일을 메모장으로 열어 함수를 찾은후 아래와 같이 추가해 주면 됩니다.

 if (!_target)
 return false;

 //======================================= 추가
 //로우어레지스트: 91, 라이프탭:82

 NTC_SwapWand(91, NTC_HAND_RIGHT, _target);
 //=======================================

(3) 공통 보스킬 함수에 추가
[보스위치: 디아블로, 바알, 그외 보스급 몬스터]

 파일: scripts\libs\common\MyAttack.ntl
 함수: MyAt_KillBoss(classId, isAttack, maxAttacks, isCheckMerc, isCheckCurse)

 파일을 메모장으로 열어 함수를 찾은 다음 아래와 같이 추가해주면 됩니다.

 if (!_target)
 return false;
 //======================================= 추가
 NTC_SwapWand(91, NTC_HAND_RIGHT, _target);
 //======================================


추가로 바알 부하 한테 쓰는 방법입니다.
제대로 들어가면 아주 고맙게 잡아줍니다..:)

파일: NTBaal.ntl
함수: MyMain()함수
찾기: MyAt_ClearPosition(40, _MyAt_MONSTER_TYPE_NOT_NORMAL, true); 

 if (_wave == 2 && MyConfig_AttackSkill[5][0] == 101)
 MyAt_ClearPosition(40, _MyAt_MONSTER_TYPE_NOT_NORMAL, true);

//======================================= 줄번호 296 줄에 추가
 NTC_SwapWeapons(); //무기 스왑(스왑무기 완드 지정)
 if(me.GetSkill(NTC_HAND_RIGHT) == 91)
 NTC_CastSkill(91, NTC_HAND_RIGHT, 15094, 5026); //공격무기 시전

 NTC_SwapWeapons(); 
//========================================

 MyAt_ClearPosition(40, _MyAt_MONSTER_TYPE_ALL, true);

ps. 스왑완드 내구가 닳아도 수리를 안하는것 같아서 수리부분을 수정합니다.
항상 액트1일때만 수리하므로 원치않으신 분들은 안하셔도 됩니다.

 위치 : scripts\libs\common\MyVisit.ntl
 함수 : MyVi_TownManager(isSimple, isCleanup, isFreeSpace)
 찾기 : _NTTMGR_DoRepair
 
_NTTMGR_DoRepair = NTT_CheckRepair(40); <== 부분을 아래와 같이 바꿈

 //=======================바꿈====================
 if ( me.act > 1 )
 _NTTMGR_DoRepair = NTT_CheckRepair(60);
else
 _NTTMGR_DoRepair = true;
 //===============================================


간단하죠? :)

댓글 21
권한이 없습니다.
다크 모드