쫄봇을 이용한 퀘드랍 자동 사냥 방법(_NTBot4.2_0)
분류
봇관련
조회 수
3,119
추천 수
20
쫄봇을 이용한 퀘드랍 자동 사냥 방법 (D2NT3.1_NTBot4.2_0 - 날아다녀님)
==============================================
(20/04/17) 최초 작성
쫄봇으로 방을 만들고, 퀘드랍 된 기사가 조인하여 함께 자동 사냥하는 방법입니다.
물론 쫄로 방만 만들게 하고 기사만 사냥 할 수도 있습니다.
###################################################
# 0.
A. 방 만드는 캐릭(쫄)명 - "GameMaker"
B. 조인 할 기사명 - "Master"
C. 기타 쫄
로 할 때
# 1.
로더 진입점 - 모두 NTbot.ntj
# 2.
NTBot.ntj 설정
쫄봇 사용시의 통상의 경우와 반대입니다. 잘 확인하세요.
// 쫄봇
//==============================================================================
leechBotMasterAccount = "A 방 만드는 캐릭(쫄)의 계정명"; //
leechBotMasterIsAuto = true; //
// 쫄 계정이름 설정하기
//----------------------
leechBotLeechAccountList.push("B 조인 할 기사 계정명");
//leechBotLeechAccountList.push("C 기타 쫄 계정명");
# 3.
캐릭별 설정
\scripts\NTBot\char_configs
1) B. 조인 할 기사
NTConfig_Script.push("MyLeechBotMaster.ntj");
MyConfig_LeechBot = 1;
MyConfig_LeechBotWait = 60; // 쫄 기다릴 최대 시간(초)
MyConfig_LeechBotGameMaker = "GameMaker"; // A. 방 만드는 캐릭(쫄)명 !!! 새로 추가 해야됩니다.
그 다음 원하는 앵벌 코스를 통상의 쫄봇기사 설정 그대로 합니다.
MyConfig_DiabloLeechBot = 2; 처럼 ***LeechBot 설정이 있는 스크립트가 운용하기에 편리합니다.
(MyMephisto.ntj / MyDuriel.ntj / MyAndariel.ntj / NTDiablo.ntj / NTBaal 등)
스크립트에서 쫄 운용하는 방법은 제 지난 글을 참고 하세요.
2) A. 방 만드는 캐릭(쫄)
NTConfig_Script.push("MyLeechBot.ntj"); // 쫄봇(쫄)
............
// 시간 설정하기 에서 스크립트 스타트 딜레이를 꼭 넉넉히 줍니다.
NTConfig_StartDelay = 6000; // 방 입장 후 지연 시간(1/1000초)
3) C. 기타 쫄
NTConfig_Script.push("MyLeechBot.ntj"); // 쫄봇(쫄)
....
NTConfig_StartDelay = 2000; // 확인은 안해봤는데 이정도면 될 것 같습니다. ^^;
4) 공통
NTConfig_PublicMode = true;
# 3-2
게임 로더 순서
일단 여기까지만 해도, 로더에서 기사 캐릭 및 기타 쫄 실행 > 방 만들캐릭 게임 실행 순서로 로딩하면 자동 사냥 가능 합니다.
*********************************************************************************************************************************
이 하는 방 만드는 캐릭이 팅기거나 치킨 할 만일의 경우,
기사는 그대로 사냥 진행중인데 방잡이는 새로 방만들고 > 기사 안들어와 방폭 > 방 만들기 ...이런 문제를 방지 하기위한 코드 수정 입니다.
수정하면 수동으로 방잡이 쫄이 나가도 기사도 같이 나가게 되니 게임진행에 참고하세요.
# 4
scripts\NTBot\char_configs\NTConfig.ntl
// #3-1 에서 사용할 변수 추가
var MyConfig_LeechBotGameMaker;
# 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; // --------- TT_mod
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)
// 50 행
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;
}