날아다녀님봇에 보스스태틱방법, 로레완드 사용법...
분류
봇관련
조회 수
1,781
추천 수
8
♨ComeBack™배짱이
https://tradia.me/diablo2/diablo2_tips/223974
날아다며님이 수정 배포를 원치 않으셔서 정강에 올립니다...
이것도 위배되면 자삭 하겠습니다...
우선 맨땅에 헤딩하기 좋아하는 저같은 분들을 위해 수정 했고요,
맨땅이라 연약하기 서울역 그지없는 알바양을 위해
천군 만마와도 같은 로레 완드 @.,@ + 보스몹 스태틱 사용법입니다...
먼저 봇원형을 만들어 주신 헤븐리스톤님, 수정본을 만드신 날아다녀님,
스태틱적용법 알려주신 승재님, 로레완드 적용법을 공개하신 쭤쭤붜님 갑사합니다...
이상을 보면 알겠지만 제가 한 것은 이 모든 것을 조합한것입니다...
각설하고 시작합니다...
@ 보스몹 스태틱...
날아다녀님 봇은 보스몹을 전부 스태틱하기 때문에 제허접봇은 다구리를 못 견딥니다...
그렇다고 몸빵 좋은 액트 보스들을 걍 팰수도 없고...
추가법은 간답합니다...
우선,
케릭 컨피그 파일에 스태틱 설정은 100으로 해주시구요...
스태틱 원하는 각 보스몹 스크립열어서
function MyMain()
{
MyConfig_SorceressCastStaticBoss = 60; // 대장을 잡을 때 사용할 스태틱 필드(100: 사용 안함)
이렇게 추가하면 되더군요...
승재님의 방법은 제게서 오류가 나더군요 ...
그래서 위에 스킬부분은 다 삭제했습니다...
@ 로레완드 사용법...
사용법은 쭤쭤붜님과 같습니다...그분것이기에...
다만 날아다녀님이 자신의 함수를 쓰는지라 그것만 변경했습니다....
우선,
D2NT3.1_NTBot4.2_0\scripts\libs\common에서 MyAttack.ntl을 엽니다...
그리고 ctrl + f를 눌러서 function MyAt_KillBoss를 찾습니다...
그리고 18줄 아래 if (!_target) return false; 와
if (!_target.IsAttackable()) return isAttack; 사이에 추가하면 됩니다...
이렇게...
function MyAt_KillBoss(classId, isAttack, maxAttacks, isCheckMerc, isCheckCurse)
{
var _target;
if (MyConfig_AttackSkill[1][0] < 0)
return false;
switch (arguments.length)
{
case 1: isAttack = false;
case 2: maxAttacks = 200;
case 3: isCheckMerc = MyConfig_CheckMerc;
case 4: isCheckCurse = MyConfig_CheckSelfCurse[1][0] > 0 || MyConfig_CheckMercCurse[1][0] > 0;
break;
}
_target = (typeof classId != "object") ? NTC_FindUnit(NTC_UNIT_MONSTER, classId, 5) : classId;
if (!_target)
return false;
//================ 추가
orgx = me.x;
orgy = me.y;
if(NTConfig_CastLRMon.indexOf(_target.name) != -1)
{
_weapon = me.GetItems();
if(_weapon)
{
for(var i = 0 ; i < _weapon.length ; i++)
{
if(_weapon[i].GetStat(204) >= '19200' && _weapon[i].GetStat(204) < '19300')
{
if(_weapon[i].itemloc == 4 || _weapon[i].itemloc == 5)
_NTP_HaveLRW = 0;
else
_NTP_HaveLRW = 1;
MyMo_MoveTo(me.areaid, _target.x, _target.y+5, 1, false);
NTC_SwapWeapons(_NTP_HaveLRW);
break;
}
}
}
if (me.GetSkill(NTC_HAND_RIGHT) == 91)
{
NTC_CastSkill(91, NTC_HAND_RIGHT, me.x, me.y-3);
}
if (_NTP_HaveLRW == 1)
{
NTC_SwapWeapons(0);
}
else
{
NTC_SwapWeapons(1);
}
MyMo_MoveTo(me.areaid, orgx, orgy, 1, false);
}
//================== 여기까지
if (!_target.IsAttackable())
return isAttack;
**응용 여기서 CastSkill 91이 로레랍니다... 라탭을 원하면 82로 바꿔 주시면 된답니다...
동작여부는 안해봐서 모르겠습니다...죄송...**
그리고,
NTTown.ntl를 열어서 마찬가지로 function NTT_CheckRepair를 찾습니다...
함수 끝부분에 추가합니다..
이렇게...
function NTT_CheckRepair(repairpercent)
{
var _max_dur;
var _percent;
var _items = me.GetItems();
if(!_items)
return false;
for(var i = 0 ; i < _items.length ; i++)
{
if(_items[i].mode == 1 && !(_items[i].itemflag&0x400000) && !_items[i].GetStat(152))
{
if(_items[i].itemtype == 42 || _items[i].itemtype == 43 || _items[i].itemtype == 44 || _items[i].itemtype == 87)
_percent = Math.floor((_items[i].GetStat(70)*100) / (GetBaseStat("weapons.txt", _items[i].classid, 45)+_items[i].GetStat(254)));
else
{
_max_dur = _items[i].GetStat(73);
if(_max_dur == 0)
continue;
_percent = Math.floor((_items[i].GetStat(72)*100) / (_max_dur*(_items[i].GetStat(75)/100 + 1)));
}
if(_percent <= repairpercent)
return true;
//============== 추가
if(_items[i].GetStat(204) >= '19200' && _items[i].GetStat(204) <= '19220')
{
return true;
//============== 여기까지
}
}
}
return false;
}
끝으로,
케릭 컨피그 파일을 열어서 공격설정 마지막 부분에
NTConfig_CastLRMon = '안다리엘 듀리얼 메피스토 디아블로 바알 Andariel Duriel Mephisto Diablo Baal';
를 추가해 줍니다...
이렇게...
MyConfig_CheckMerc = true; // 사냥 중 용병이 죽으면 살리기
MyConfig_CheckSelfCurse = [[true, 2, 9, 19, 55, 60, 61], [0, 2, 9, 19, 55, 60, 61]];
MyConfig_CheckMercCurse = [[true, 2, 9, 19, 55, 60, 61], [0, 2, 9, 19, 55, 60, 61]];
NTConfig_ClearPosition = [false, false, false];
NTConfig_CastLRMon = '안다리엘 듀리얼 메피스토 디아블로 바알 Andariel Duriel Mephisto Diablo Baal';
로레를 원피않는 보스는 빼주면 대겠져...
그런데 딴 보스는 추가해도 로레를 안뿌리더군요... ㅡ,.ㅡa
참고로 로레스왑시 오른쪽 스킬이 로레로 안돼있으면 안뿌립니다...
가끔 텔레로 변해있는 경우가 있더군요...
봇순이 상망시 그런것 같습니다...
번거롭지만 봇순이 사망후 다시 오른쪽 스킬을 로레로 바꿔 주세요..