쫄봇에게 원하는 분기에 함성/마법 등 받는 방법 - NTBot4.2_0
분류
봇관련
조회 수
2,874
추천 수
19
봇스크립트에 쫄봇(MyleechBot) 함성 원하는 분기에 넣는 방법
-- D2NT3.1_NTBot4.2_0 날아다녀님 버전
지난번 올린 글과 관련되어 있기도 합니다.
쫄봇의 프리캐스트 문제.
D2NT3.1_NTBot4.2_0 의 현재 쫄봇 스크립트 함수는
기사나 파티의 버프 상태를 모니터한 후 해당 버프가 사라졌을 때, 비로소 프리캐스트를 시도합니다.
예로, 기사가 받은 배틀오더스 남은 시간과 관계없이 - 봇스크립트의 원하는 분기에 - 쫄봇 바바의 오더를 받고 싶은 경우 다음과 같이 하면 됩니다.
#
기사와 쫄의 설정은 기본 방법 그대로 합니다.
#
쫄봇 스크립트를 수정합니다.
\scripts\NTBot\bots\MyLeechBot.ntj
function MyL_CheckMessageAuto()
{
var _msg = MyL_ReadMessage();
if (_msg && _msg != _MyL_Message)
{
switch (_msg)
{
// MyLeechBot.ntj --- 738 행 다음 추가
case "BO": // Warcries 강제 캐스팅. 이벤트 호출: MyLB_WriteMessage("BO");
NTC_CastSkill(155, NTC_HAND_RIGHT);
NTC_CastSkill(138, NTC_HAND_RIGHT);
NTC_CastSkill(149, NTC_HAND_RIGHT);
MyLB_WriteMessage(_MyL_Message);
break;
#
봇 스크립트에서 사용
예: NTDiablo.ntj - 디아블로/카오스 런에서
1. 불길의 강 웨이에서 쫄봇 함성 받기.
----> 캐릭 설정에서 NTConfig_****.ntl (실제로 주석 처리하라는 뜻이 아님)
// NTConfig_Script.push("NTDiablo.ntj");
// MyConfig_DiabloClear = [1, 1, 1, 0x01]; //
// MyConfig_DiabloLeechBot = 2 // 웨이부터 카오스 까지 쫄과 함께 사냥하고 싶은 경우.
// ( MyConfig_DiabloClear = [0, 0, 1, 0x01];
// MyConfig_DiabloLeechBot = 1; // 혹은 함성만 받고 쫄은 마을로 갈 경우 )
// ------------------------------------------ NTDiablo.ntj
if (!MyMo_TakeWaypoint(107))
{
LeechBotHelp = -1;
PlayerHelp = -1;
return "MyMo_TakeWaypoint()";
}
//----------- NTDiablo.ntj 46행 아래 추가
NTM_MakeTP(); // 포탈생성
if (MyConfig_DiabloLeechBot != 0)
{
MyLB_WriteCheckMessage("OUT"); // 봇 포탈 타기
Delay(2000);
MyLB_WriteMessage("BO"); // 디아런이 첫 스크립트인 경우 생략 가능하지만, 이전 스크립트에서 쫄봇에게 함성을 받았다면 이 과정이 필요
Delay(2000);
MyLB_WriteMessage("IN"); // 마을로
}
if (MyConfig_DiabloLeechBot == 2) // 쫄(움직임)의 경우
MyLB_WriteMessage("RESUME"); // 따라오게 하기
// ----- 추가 끝
NTP_DoPrecast(true);
2. 카오스 입구에서 받을 경우
---> NTConfig_Script.push("NTDiablo.ntj"); // 액트 4: 불길의 강으로 이동 -> 카오스 생츄어리로 이동 -> 씨일 열고 소환 몬스터 사냥 -> 디아블로 사냥
// MyConfig_DiabloClear = [false, 1, 1, 0x01]; 의 경우
// ------------------------------------------ NTDiablo.ntj
if (MyConfig_DiabloLeechBot != 0)
{
MyLB_WriteCheckMessage("OUT");
// ----- NTDiablo.ntj 90 행
Delay(2000);
MyLB_WriteMessage("BO");
Delay(2000);
// ------- 추가 끝
if (MyConfig_DiabloLeechBot == 2)
MyLB_WriteMessage("RESUME");
}
#
바알런 응용
1. 월드스톤2층 웨이에서 함성 받기 ..... NTBaal.ntj
if (!NTC_InTown())
NTP_DoPrecast(true);
else
{
NTC_StopScript("NTToolsThread_NTBaal.ntj");
return "NTP_DoPrecast()";
}
// ------ 53 행 추가
if (MyConfig_BaalLeechBot != 0)
{
NTM_MakeTP();
MyLB_WriteMessage("OUT");
Delay(2000);
MyLB_WriteMessage("BO");
Delay(2000);
MyLB_WriteMessage("IN");
}
2. 쓰론 미니언 등장 전
// ------- 249행 추가
if( MyConfig_BaalLeechBot != 0 )
{
Delay(1500);
MyLB_WriteMessage("BO");
Delay(2000);
}
#
수동 쫄봇 응용
위의 방법대로 \scripts\NTBot\bots\MyLeechBot.ntj 에서 기사 명령에 따른 실행조건을 설정하고,
MyLeechBotMaster.ntj 에서 키입력 이벤트를 수정하여 수동쫄봇에게 함성,인첸트,오로라,마법 등의 모든 명령을 할수 있습니다.
저의 이전 글에서 처럼 오토텔레포트와의 연동도 가능합니다.
.......... < MyLeechBotMaster.ntj > ........... 수동 함성 예제
function MyLM_EventKey(keyCode)
{
if (MyMI_LoadMoveItem(keyCode))
return;
switch (keyCode)
{
// ------ 추가
case [KEY_CODE]:
MyLB_WriteMessage("BO"); break;
// ------