쫄봇을 이용한 퀘드랍 자동사냥 방법(날아다녀님 NTBot4.2_2 2차)
분류
봇관련
조회 수
3,210
추천 수
20
쫄봇을 이용한 퀘드랍 자동 사냥 방법 (D2NT3.1_NTBot4.2_2 - 날아다녀님 2차 수정 버젼)
=======================================================
업데이트
4.49
NTConfig_StartDelay 설정할 필요 없도록 새로운 방법을 올렸습니다. 새방법으로 하시기 바랍니다. http://tradia.me/diablo2/diablo2_tips/238251
쫄봇으로 방을 만들고, 퀘드랍 된 기사가 조인하여 함께 자동 사냥하는 방법입니다.
NTBot4.2_0 버젼에서 방법을 전에 올렸으나, 2차 수정버젼에서 안된다고 문의하시는 분들이 있어서 새 버젼에 맞는 방법을 올립니다.
###################################################
# 0.
A. 방 만드는 캐릭(쫄)명 - "GameMaker"
B. 조인 할 기사명 - "Master"
C. 기타 쫄
로 할 때
# 1.
로더 진입점 - 모두 NTbot.ntj
# 2.
NTBot.ntj 설정
쫄봇 사용시의 통상의 경우와 반대입니다. 잘 확인하세요.
// 쫄봇
//==============================================
leechBotMasterAccount = "A 방 만드는 캐릭(쫄)의 계정명"; //
leechBotMasterIsAuto = true; //
// 쫄 계정이름 설정하기
//----------------------
leechBotLeechAccountList.push("B 조인 할 기사 계정명");
//leechBotLeechAccountList.push("C 기타 쫄 계정명");
# 3-1
scripts\NTBot\char_configs\NTConfig.ntl
// 자동쫄봇용 변수 추가
var MyConfig_LeechBotGameMaker;
# 3-2
캐릭별 설정 ( \scripts\NTBot\char_configs\NTConfig_클래스_캐릭명.ntl )
0) 공통
NTConfig_PublicMode = true;
1) B. 조인 할 기사
NTConfig_Script.push("MyLeechBotMaster.ntj");
MyConfig_LeechBot = 1; // 쫄 인원수 = 0: 기사를 직접할 경우/ 1 이상: 기사가 봇일 경우
MyConfig_LeechBotWait = 60; // 쫄 기다릴 최대 시간(초)
//------------------ 이하 추가
MyConfig_LeechBotGameMaker = "GameMaker"; // A. 방 만드는 캐릭(쫄)명
그 다음 원하는 앵벌 코스를 통상의 쫄봇기사 설정 그대로 합니다.
MyConfig_DiabloLeechBot = 2; 처럼 ***LeechBot 설정이 있는 스크립트가 운용하기에 편리합니다.
(MyMephisto.ntj / MyDuriel.ntj / MyAndariel.ntj / NTDiablo.ntj / NTBaal 등)
스크립트에서 쫄 운용하는 방법은 제 지난 글을 참고 하세요.
http://tradia.me/diablo2/diablo2_tips/231861
***************************************************************************
참고: 2차 수정 버젼에서 "ATTACK" 명령이 추가되었습니다.
마을에 쫄이 있을 경우 "OUT"과 "RESUME" 명령을 내린 것과 같습니다.
***************************************************************************
2) A. 방 만드는 캐릭(쫄)
//이하는 예시 입니다. 사용자 임의대로 합니다.
NTConfig_Script.push("MyLeechBot.ntj"); // 쫄봇(쫄)
MyConfig_LeechBotItem = true; // 방 입장 후 아이템 등 정리하기
MyConfig_LeechBotDistance = [10, 20]; // 기사와의 간격 = [최소, 최대]
MyConfig_LeechBotAttack = [25, 300]; // 몬스터 잡기 = [몬스터와의 간격, 공격 시간(1/1000초) 간격]
MyConfig_LeechBotPick = 2000; // 아이템 줍기 = 확인 시간(1/1000초) 간격
MyConfig_LeechBotTeleport = false; // 텔레포트 사용하기
MyConfig_LeechBotPrecast = [1000, 1, 1, false, 0, 0]; // [프리캐스트 시간(1/1000초) 간격, 배틀 오더스, 샤우트, 네크로맨서 소환 스펠, 네크로맨서 저주, 팔라딘 오라]
MyConfig_LeechBotMerc = 2000; // 용병 살리기 = 확인 시간(1/1000초) 간격
MyConfig_LeechBotMaster = ""; // 방에 있는 특정 캐릭터를 기사로 설정하기
...........................
//************************************************
//중요!!!! NTConfig_StartDelay = 0; 를 찾아서 넉넉히 변경 합니다.
NTConfig_StartDelay = 6000; // 방 입장 후 지연 시간(1/1000초)
3) C. 기타 쫄
NTConfig_Script.push("MyLeechBot.ntj");
...........................
NTConfig_StartDelay = 2000; // 방 입장 후 지연 시간(1/1000초)
# 4
\scripts\NTBot\bots\MyLeechBotMaster.ntj
function MyMain()
{
LeechBotNameMsg = 0;
NTConfig_PublicMode = true;
if (MyConfig_LeechBot > 0)
{
//--------------- 이하 추가
if (MyConfig_LeechBotGameMaker)
MyIL_File("NTBot/MyData/LeechBot/LeechBotMasterName.txt", 1, me.name);
//------------------- 이상
***************************************************************************************************************************
일단 여기까지만 해도, 로더에서 기사 캐릭 및 기타 쫄 실행 > 방 만들캐릭 게임 실행 순서로 로딩하면 자동 사냥 가능 합니다.
*********************************************************************************************************************************
이 하는 방 만드는 캐릭이 팅기거나 치킨 할 만일의 경우,
기사는 그대로 사냥 진행중인데 방잡이는 새로 방만들고 > 기사 안들어와 방폭 > 방 만들기 ...이런 문제를 방지 하기위한 코드 수정 입니다.
수정하면 수동으로 방잡이 쫄이 나가도 기사도 같이 나가게 되니 게임진행에 참고하세요.
# 5
\scripts\NTBot\tools\NTToolsThread.ntj
1)
function NTMain()
{
Include("libs/common/NTCommon.ntl");
NTC_IncludeConfig("NTBot/char_configs");
NT_LoadConfig();
// 10 행 아래 추가
// <---------------------------------------------- TT_mod
var _qdropMaster = false;
var _gamemaker;
var _masterName;
if (MyConfig_LeechBotGameMaker)
{
_masterName = My_File("NTBot/MyData/LeechBot/LeechBotMasterName.txt", 0);
if (me.name == _masterName)
{
Include("libs/common/MyUnit.ntl");
_qdropMaster = true;
}
}
// ----------------------------------------------> TT_mod
2)
// 30 행
while (true)
{
//추가<---------------------------------------------- TT_mod
if (_qdropMaster )
{
_gamemaker = MyUn_GetPlayer(MyConfig_LeechBotGameMaker);
if (!_gamemaker) // <
{
SendCopyData("D2NT Manager", null, 7<<16, "yc1Go after the game maker.");
ExitGame();
return;
}
}
// ----------------------------------------------> TT_mod
3)
// 맨 뒤나 앞에 함수 추가
function My_File(path, mode, msg, delay)
{
var _msg = "";
var _line = "";
var _fileHandle;
var _isFileCheck = false;
if (arguments.length < 3) msg = "";
if (arguments.length < 4) delay = (mode > 0) ? 5 : 2;
while (delay--)
{
if (mode == 2 && !_isFileCheck)
{
_fileHandle = FileOpen(path, 0);
if (!_fileHandle)
_fileHandle = FileOpen(path, 1);
if (_fileHandle)
_fileHandle.Close();
_isFileCheck = true;
}
_fileHandle = FileOpen(path, mode);
if (_fileHandle)
break;
if (delay)
Delay(200);
}
if (_fileHandle)
{
if (mode == 0)
{
while (!_fileHandle.eof)
{
_line = _fileHandle.ReadLine();
if (_line || !_fileHandle.eof)
_msg += _line + msg;
}
}
else if (msg)
_fileHandle.WriteLine(msg);
_fileHandle.Close();
}
return _msg;
}
*********************************************************
부록: 코드 수정 하는 법
의외로 코드 수정 하는 방법에 대해 문의하는 분들이 있습니다.
먼저 에디터를 준비합니다. 저는 EditPlus를 씁니다.
# 4
\scripts\NTBot\bots\MyLeechBotMaster.ntj
function MyMain()
{
LeechBotNameMsg = 0;
NTConfig_PublicMode = true;
if (MyConfig_LeechBot > 0)
{
//--------------- 이하 추가
if (MyConfig_LeechBotGameMaker)
MyIL_File("NTBot/MyData/LeechBot/LeechBotMasterName.txt", 1, me.name);
//------------------- 이상
이 경우를 예로 하겠습니다.
경로에 들어가서 해당 파일을 에디터로 엽니다.
Ctrl+F 하면 찾기 창이 뜹니다. 입력란에 function MyMain() 쓰거나 붙여넣고 찾기 버튼 누릅니다.
원본 코드와 제가 올린 코드를 비교하여 새로 추가하거나 수정합니다.
위의 경우는 주석 처리된 부분
//--------------- 이하 추가
if (MyConfig_LeechBotGameMaker)
MyIL_File("NTBot/MyData/LeechBot/LeechBotMasterName.txt", 1, me.name);
//------------------- 이상
을 복사해서 그 위치에 붙여 넣습니다.