Skip to content

오리지날 함성바바+블리소서 질문드려봅니다.[날아다녀님11차버젼]

분류 질문 조회 수 1,350 추천 수 0

정강란에 나온대로 그대로했는데 조금 설정이 틀려서 질문드려볼게요


원래 바바+팔라 인데 전 // 바바 + 블리소서로 해보았습니다
사냥터는
액트1 안다 액트2 소환술사 듀리엘 액트3 메피스토까지입니다.

1. 캐릭설정화일이름바꾸기
D2NT\scripts\NTBot\char_configs\NTConfig_Barbarian_함성바바캐릭명.ntl
D2NT\scripts\NTBot\char_configs\NTConfig_Paladin_블리소서/오리햄딘캐릭명.ntl

일단 캐릭명쓰는 곳에 자기 캐릭 이름을 써넣습니다.

그리고 캐릭설정화일을 엽니다.

2.바바캐릭설정
NTConfig_Barbarian_함성바바캐릭명.ntl

이화일을 열어서 사냥터는 주석처리(//), 아마도 삥바바용 트라빈컬이 설정되어있을겁니다.
 NTConfig_Script.push("MyWarcries.ntj"); // 함성바바("scripts/NTBot/bots/MyWarcries.ntj"에서 설정합니다)
이부분의 주석을 지웁니다.

// 기타 옵션 설정하기
 
 NTConfig_PublicMode = true; // 공방 모드(원래 false라고 되어있습니다)

3.햄딘캐릭설정
NTConfig_Paladin_오리햄딘캐릭명.ntl

이화일을 열어서 다른 사냥터는 주석처리(//)
NTConfig_Script.push("MyQueDrop.ntj"); // 퀘드랍("scripts/NTBot/bots/MyQueDrop.ntj"에서 설정합니다)
이부분의 주석을 지웁니다.
그리고
NTConfig_Script.push("NTDiablo.ntj");
디아블로를 사냥할거니깐 사냥터 디아블로 앞의 주석도 지웁니다.

// 기타 옵션 설정하기
 
 NTConfig_PublicMode = true; // 공방 모드(원래 false라고 되어있습니다)

4.함성바바설정
바바캐릭설정에서 보면 함성바바("scripts/NTBot/bots/MyWarcries.ntj"에서 설정합니다.
라는 부분이 있습니다.
그걸 따라서
MyWarcries.ntj화일을 엽니다
var _MyW_WarcriesName = "오리햄딘캐릭명"; // "함성 받을 캐릭터 이름"
var _MyW_Waypoint = 107; // 함성 할 웨이포인트
var _MyW_isPortal = false; // 포탈 열기
var _MyW_MasterName = ""; // "방을 따라 나갈 캐릭터 이름"
var _MyW_EnchanterName = ""; //

// _MyW_WarcriesName = "함성 받을 캐릭터 이름" 설정했을 경우
// "함성 받을 캐릭터 이름"을 설정한 시간동안 기다리다 파티맺고 함성해준 후 "MyWarcries.ntj"를 끝냅니다.
//------------------------------------------------------------------------------
var _MyW_Delay = [1800, 30, 60, 3]; // 퀘드랍 캐릭터 확인 시간

첫번째줄 오리햄딘캐릭명이라고 쓴곳에 자기 오리햄딘 캐릭명 쓰시면 됩니다.
두번째줄 웨이번호 107로 수정,
마지막줄 원래 var_MyW_Delay = [180,30,60,3]; 로 되어있는데 180을 1800으로 수정합니다(0하나 추가요)

5.퀘드랍설정
역시 햄딘캐릭설정에서 보면 퀘드랍("scripts/NTBot/bots/MyQueDrop.ntj"에서 설정합니다
라는 부분이 있습니다
그걸 따라서
MyQueDrop.ntj화일을 엽니다
var _MyQ_WarcriesName = "오리바바캐릭명";
오리바바캐릭명만 써넣으시면 됩니다.

6. 바바가 방을만들고 햄딘이 그방을 따라가게 하는 작업
D2NT\scripts\NTBot.ntj 화일을 엽니다.

멀티로더 설정다음에 보면
쫄봇 설정이 나옵니다.
거기서.
기사계정입력하기에
leechBotMasterAccount = "오리바바의 계정이름";
쫄계정이름 입력하기에
앞에있던 주석 삭제하고
leechBotLeechAccountList.push("오리햄딘의 계정이름");

이렇게 하시면 됩니다. 캐릭명이 아니라 계정명인것을 주의하세요.

================================================
이제부터 위에것 보고 제가 한 것들입니다.

2번설정하기
// 함성바바와 퀘드랍, 디아런 도우미
 //--------------------------------------------------------------------------
 NTConfig_Script.push("MyWarcries.ntj"); // 함성바바(함성 해 주기) * 참고: "scripts/NTBot/MyConfigs/Warcries.ntl"에서 설정합니다.
 //NTConfig_Script.push("MyQueDrop.ntj"); // 퀘드랍(함성 받기) * 참고: "scripts/NTBot/MyConfigs/QueDrop.ntl"에서 설정합니다.
 //NTConfig_Script.push("MyDiaRunMaster.ntj"); // 디아런 도우미(기사) * 참고: "scripts/NTBot/MyConfigs/Key.ntl"에서 명령키를 설정합니다. "NTConfig_PublicMode = true"로 자동 설정됩니다.
 //NTConfig_Script.push("MyDiaRunWarcries.ntj"); // 디아런 도우미(함성바바) * 참고: "NTConfig_PublicMode = true"로 자동 설정됩니다.
 //NTConfig_Script.push("MyDiaRunTeleport.ntj"); // 디아런 도우미(플라이소서) * 참고: "NTConfig_PublicMode = true"로 자동 설정됩니다.

// 기타 옵션 설정하기
 //==========================================================================
 NTConfig_PublicMode = true; // 공방 모드 * 참고: 자동으로 파티하기, 디아블로 입구부터 잡기와 타운포탈 열기, 바알 타운포탈 열기, 전체 창에 메시지 보내기 등을 합니다. * 주의: 일부 스크립트에서는 자동으로 설정됩니다.

3.소서캐릭설정
// 함성바바와 퀘드랍, 디아런 도우미
 //--------------------------------------------------------------------------
 //NTConfig_Script.push("MyWarcries.ntj"); // 함성바바(함성 해 주기) * 참고: "scripts/NTBot/MyConfigs/Warcries.ntl"에서 설정합니다.
 NTConfig_Script.push("MyQueDrop.ntj"); // 퀘드랍(함성 받기) * 참고: "scripts/NTBot/MyConfigs/QueDrop.ntl"에서 설정합니다.

// 기타 옵션 설정하기
 //==========================================================================
 NTConfig_PublicMode = true; //

밑에 3가지는 글쓴분과 설정자체가 다르기 때문에 파일 통으로 올려볼게요

4.함성바바설정




↓는 scripts/NTBot/bots/MyWarcries.ntj 밑에 파일 통으로 올린글입니다.

const _MyWa_WARCRIES_RANGE = 15;
const _MyWa_HOWL_RANGE = 10;

var _MyWa_WarcriesList = new Array();
var _MyWa_Duration;

Include("NTBot/MyConfigs/Warcries.ntl");


function MyMain()
{
 Print("ÿc5날아다녀의 \"함성봇\" 세계에 오신 것을 환영합니다.");

 var i;
 var _player;

 MyVi_TownManager(true);

 if (_MyWaC_WarcriesName)
 {
 for (i = 1; i <= _MyWaC_Delay[0]; i++)
 {
 MyConfig_StatusText[0] == 1 && MyCo_SetStatusText("ÿc4퀘드랍 캐릭터를 기다리는 중 (ÿc0" + i + "ÿc4/" + _MyWaC_Delay[0] + ")");

 _player = MyUn_GetPlayer(_MyWaC_WarcriesName);
 if (_player)
 break;

 Delay(1000);
 }

 if (!_player)
 return "MyUn_GetPlayer()";
 }

 _MyWaC_WarcriesName && MyConfig_StatusText[0] == 1 && MyCo_SetStatusText("ÿc4웨이포인트로 이동 중 (ÿc0...ÿc4)");
 if (!NTTM_TownMove("waypoint"))
 return "NTTM_TownMove()";
 if (!MyMo_TakeWaypoint(_MyWaC_Waypoint))
 return "MyMo_TakeWaypoint()";

 if (_MyWaC_isPortal)
 NTM_MakeTP();

 if (_MyWaC_WarcriesName)
 {
 for (i = 1; i <= _MyWaC_Delay[1]; i++)
 {
 MyConfig_StatusText[0] == 1 && MyCo_SetStatusText("ÿc4퀘드랍 캐릭터와 파티 맺는 중 (ÿc0" + i + "ÿc4/" + _MyWaC_Delay[1] + ")");

 _player = MyUn_GetParty(_MyWaC_WarcriesName, 1, 10);
 if (_player)
 break;

 Delay(1000);
 }

 if (!_player)
 return "MyUn_GetParty()";

 for (i = 1; i <= _MyWaC_Delay[2]; i++)
 {
 MyConfig_StatusText[0] == 1 && MyCo_SetStatusText("ÿc4퀘드랍 캐릭터가 주위에 있나 확인 중 (ÿc0" + i + "ÿc4/" + _MyWaC_Delay[2] + ")");

 _player = MyUn_GetPlayerUnit(_MyWaC_WarcriesName, 1, true);
 if (_player)
 break;

 Delay(1000);
 }

 if (!_player)
 return "MyUn_GetPlayerUnit()";

 for (i = 1; i <= _MyWaC_Delay[3]; i++)
 {
 MyConfig_StatusText[0] == 1 && MyCo_SetStatusText("ÿc4퀘드랍 캐릭터한테 함성 해주는 중 (ÿc0" + i + "ÿc4/" + _MyWaC_Delay[3] + "번째)");
 MyWa_DoWarcries();

 Delay(1000);

 if (_player.GetState(51) && _player.GetState(26) && _player.GetState(32))
 break;
 }

 MyConfig_StatusText[0] == 1 && MyCo_SetStatusText("ÿc4마을로 이동 중 (ÿc0...ÿc4)");
 if (!MyMo_TakeToTown())
 return "MyMo_TakeToTown()";

 return "MyMain()";
 }
 else
 {
 var _isCheck = false;

 while (true)
 {
 if (!NTC_InTown())
 {
 if (_MyWaC_DoWarcries > 0 || _MyWaC_SendMessage[0] > 0)
 {
 for (i = 0; i < _MyWa_WarcriesList.length; i++)
 {
 if (!MyUn_GetPlayer(_MyWa_WarcriesList[i][0]))
 _MyWa_WarcriesList.splice(i--, 1);
 }
 }

 MyWa_DoWarcries();

 if (_MyWaC_SendMessage[0] > 0)
 MyWa_SendMessage();
 }

 for (i = 0; i < 5; i++)
 {
 if (_MyWaC_MasterName)
 {
 if (!_isCheck)
 {
 if (MyUn_GetPlayer(_MyWaC_MasterName))
 _isCheck = true;
 }
 else if (!MyUn_GetPlayer(_MyWaC_MasterName))
 MyCo_ExitGame();
 }

 Delay(1000);
 }
 }
 }
}

function MyWa_DoWarcries()
{
 var _unit;
 var _iWarcries;

 _unit = NTC_FindUnit(NTC_UNIT_PLAYER);
 if (_unit)
 {
 do
 {
 if (_unit.name != me.charname && GetDistance(me, _unit) <= _MyWa_WARCRIES_RANGE && NTC_InMyParty(_unit.name))
 {
 _iWarcries = MyWa_CheckWarcries(_unit, false);

 if (_iWarcries == -1 ||
 !_unit.GetState(51) ||
 !_unit.GetState(26) ||
 !_unit.GetState(32) ||
 (_unit.name != _MyWaC_EnchanterName && _MyWaC_DoWarcries > 0 && (_MyWa_WarcriesList[_iWarcries][1] - Math.round(GetTickCount() / 1000)) < _MyWaC_DoWarcries))
 {
 NTC_CastSkill(155, NTC_HAND_RIGHT);
 NTC_CastSkill(138, NTC_HAND_RIGHT);
 NTC_CastSkill(149, NTC_HAND_RIGHT);

 if (_MyWa_Duration == undefined)
 _MyWa_Duration = (me.GetSkill(155, false) * 5) + (me.GetSkill(138, false) * 5) + (me.GetSkill(149, true) * 10) + 20;

 MyWa_CheckWarcries(_unit, true);
 }
 }
 } while (_unit.GetNext());
 }

 _unit = NTC_FindUnit(NTC_UNIT_MERC);
 if (_unit)
 {
 do
 {
 if (GetDistance(me, _unit) <= _MyWa_WARCRIES_RANGE &&
 (!_unit.GetState(51) || !_unit.GetState(26) || !_unit.GetState(32)) &&
 MyUn_IsParty(_unit) &&
 MyUn_IsWarcries(_unit))
 {
 NTC_CastSkill(155, NTC_HAND_RIGHT);
 NTC_CastSkill(138, NTC_HAND_RIGHT);
 NTC_CastSkill(149, NTC_HAND_RIGHT);

 if (_MyWa_Duration == undefined)
 _MyWa_Duration = (me.GetSkill(155, false) * 5) + (me.GetSkill(138, false) * 5) + (me.GetSkill(149, true) * 10) + 20;
 }
 else if (_unit.IsAttackable() && GetDistance(me, _unit) <= _MyWa_HOWL_RANGE && MyUn_IsValidMonster(_unit))
 NTC_CastSkill(130, NTC_HAND_RIGHT);
 } while (_unit.GetNext());
 }
}

function MyWa_CheckWarcries(unit, isSet)
{
 for (var i = 0; i < _MyWa_WarcriesList.length; i++)
 {
 if (_MyWa_WarcriesList[i][0] == unit.name)
 {
 if (isSet)
 _MyWa_WarcriesList[i][1] = Math.round(GetTickCount() / 1000) + _MyWa_Duration;

 return i;
 }
 }

 return (isSet ? (_MyWa_WarcriesList.push([unit.name, Math.round(GetTickCount() / 1000) + _MyWa_Duration]) - 1) : -1);
}

function MyWa_SendMessage()
{
 var _iWarcries;
 var _duration;
 var _player = GetPlayerUnit();

 if (_player)
 {
 while (_player.GetNext())
 {
 _iWarcries = MyWa_CheckWarcries(_player, false);
 if (_iWarcries != -1)
 {
 _duration = _MyWa_WarcriesList[_iWarcries][1] - Math.round(GetTickCount() / 1000);
 if (_duration < _MyWaC_SendMessage[0])
 {
 if (_MyWaC_SendMessage[1] < 1 || _duration >= _MyWaC_SendMessage[1])
 {
 Say("함성: " + _player.name + " (" + ((_duration > 0) ? _duration : 0) + "초)");
 NTC_PingDelay(200);
 }
 }
 }
 }
 }
}



그래서 myconfigs 에 잇는 파일을 제가 고쳐보았습니다.
var _MyWaC_WarcriesName = "Sh_dang";
var _MyWaC_Waypoint = 107;
var _MyWaC_isPortal = false;
var _MyWaC_MasterName = "Sh_Bo";
var _MyWaC_EnchanterName;
var _MyWaC_Delay = new Array(4);
var _MyWaC_DoWarcries;
var _MyWaC_SendMessage = new Array(2);


//##############################################################################
// 함성바바 설정하기
//-------------------
// true: 사용, false: 사용 안 함, 0: 사용 안 함, "": 사용 안 함
//==============================================================================
_MyWaC_WarcriesName = "Sh_dang"; // "함성 받을 캐릭터 이름"
_MyWaC_Waypoint = 107; // 함성 할 웨이포인트
_MyWaC_isPortal = false; // 타운포탈 열기
_MyWaC_MasterName = ""; // "방을 따라 나갈 캐릭터 이름" * 참고: _MyWaC_WarcriesName = ""로 설정했을 경우에만 작동합니다.
_MyWaC_EnchanterName = ""; // "_MyWaC_DoWarcries와 _MyWaC_SendMessage를 적용하지 않을 캐릭터 이름"

// _MyWaC_WarcriesName = "함성 받을 캐릭터 이름" 설정했을 경우
// "함성 받을 캐릭터 이름"을 설정한 시간동안 기다리다 파티맺고 함성해준 후 "MyWarcries.ntj"를 끝냅니다.
//------------------------------------------------------------------------------
_MyWaC_Delay = [1800, 30, 60, 3]; // 퀘드랍 캐릭터 확인 시간 = [방에 들어왔는지 여부(초), 파티를 맺었는지 여부(초), 주위에 있는지 여부(초), 함성을 해줬는지 여부(횟수)]

// _MyWaC_WarcriesName = "" 설정했을 경우
// 웨이포인트로 이동 후 게임최대시간까지 함성을 해줍니다.
//------------------------------------------------------------------------------
_MyWaC_DoWarcries = 0; // 배틀 오더스 남은 시간(초)이 설정한 시간(초)보다 적으면 함성 해주기
_MyWaC_SendMessage = [0, 0]; // [메시지 보내기(배틀 오더스 남은 시간(초)이 설정한 시간(초)보다 적으면 메시지를 보냅니다), 메시지 안 보내기(배틀 오더스 남은 시간(초)이 설정한 시간(초)보다 적으면 메시지를 안 보냅니다)]



5.퀘드랍설정
//##############################################################################
// 퀘드랍 캐릭터 설정하기
//==============================================================================
_MyQDC_Warcries = ["Sh_Bo", false]; // 함성바바 = ["함성바바 이름", true: 함성을 받지 못하면 방 나가기/ 함성을 받지 못해도 방 나가지 않기]
_MyQDC_Delay = [10, 30, 90, 30]; // 함성바바 확인 시간 = [방에 있는지 여부(초), 파티를 맺었는지 여부(초), 웨이포인트로 이동했는지 여부(초), 함성을 받았는지 여부(초)]



6. 바바가 방을만들고 햄딘이 그방을 따라가게 하는 작업

//##############################################################################
// 쫄봇
//------
// leechBotAccountList.push([["기사 계정이름", 자동으로 방 만들기, 채팅창에 있으면 방이름 및 방암호 알려주기], ["쫄 계정이름", 방 들어가기 전 지연 시간] . . .])
// "clan_inwoo1" : "캐릭터이름"이 아닌 "계정이름"입니다.
// 자동으로 방 만들기 : true = 자동으로 방 만들기, false = 수동으로 방을 만들거나 들어가기
// 채팅창에 있으면 방이름 및 방암호 알려주기: 0 = 사용 안 함, 1 = 방이름만 알려주기, 2 = 방이름과 방암호 알려주기
//
// "clan_inwoo12" : "캐릭터이름"이 아닌 "계정이름"입니다.
// 방 들어가기 전 지연 시간: 1/1000초
//
// 예) leechBotAccountList.push([["ㄱ", true, 0], ["ㄴ", 0], ["ㄷ", 1000], ["ㄹ", 500]);
// 쫄 "ㄴ", "ㄷ", "ㄹ"은 로비에서 대기하다가 기사 "ㄱ"이 자동으로 방을 만들면 "ㄴ"은 0초, "ㄷ"은 1초, "ㄹ"은 0.5초 지연 후 방에 들어갑니다.
//
// 주의: 시작하기 전 "scripts/NTBot/MyData/LeechBot" 폴더에 있는 파일들을 삭제합니다.
// 기사와 쫄을 운용하는 컴퓨터의 날짜와 시간은 같아야 합니다.
//==============================================================================
//leechBotAccountList.push([["clan_inwoo1", true, 0], ["clan_inwoo12", 0]]);
//leechBotAccountList.push([["기사 계정이름", true, 0], ["쫄 계정이름", 0], ["쫄 계정이름", 0]]);
//leechBotAccountList.push([["기사 계정이름", true, 0], ["쫄 계정이름", 0], ["쫄 계정이름", 0], ["쫄 계정이름", 0]]);


//##############################################################################
// 퀘드랍용 쫄봇
//---------------
// 주의: 시작하기 전 "scripts/NTBot/MyData/LeechBotQueDrop" 폴더에 있는 파일들을 삭제합니다.
// 참고: leechBotQueDropMasterAccount가 방을 만들면 leechBotQueDropLeechAccountList에 설정한 순서대로 한 명의 쫄만 방에 들어갑니다.
//==============================================================================
leechBotQueDropMasterAccount = "clan_inwoo1"; // 기사 계정이름

// 쫄 계정이름 설정하기
//----------------------
leechBotQueDropLeechAccountList.push("clan_inwoo12");
//leechBotQueDropLeechAccountList.push("쫄 계정이름");
//leechBotQueDropLeechAccountList.push("쫄 계정이름");


다소 장문인데 하나하나씩 도와주시면 감사하겠습니다..

최종적으로 이렇게 수정햇구요 해본결과 처음에 어떻게 하다보니깐
바바는 워크라이 라는 문구가 떴지만
지금 다시 해본결과 바바가 대기실까지가고 방 만들기 전에 팅기버립니다..

  • 데빌오브스카이 2010.09.18 23:11
    좋은자료네요 감사히보고갑니다^^

번호 분류 제목 글쓴이 날짜 조회
공지   게시판 푸시 알림 / 통합 앱 서비스 35 file 트디개발자 2023.09.20 948.0k
공지 안내 D2NT 처음 이용하는 분은 튜토리얼을 참고바랍니다. 135 우녕자 2014.12.21 51.0k
공지   맨땅 초보자 가이드 614 file 뮤리아 2020.10.16 1016.4k
공지   카카오톡 1:1 채팅방 만드는 법 106 트디개발자 2018.05.20 430.9k
4991 기타 레드벡스 + 쫄 기능 구현 3 재키 2010.09.20 908
4990 기타 시디키 파일을 열수 있는 방법은 없는건가요? 7 따블A 2010.09.20 612
4989 질문 유닉 발록 스킨 이니좀 봐주세요(완료) 2 세모선장 2010.09.20 1.4k
4988 질문 날라다녀님의 11차 버전 자동 통찰력 만들기 질문입니다 4 푸른늑대[A1L] 2010.09.20 1.8k
4987 질문 날라다님D2NT3.1_4차)통찰17메디 와 260증뎀 설정을?... 20 Architect 2010.09.19 1.5k
4986 질문 쫄봇 사용시 이상한 행위 질문입니다 21 레더만이살길이다[O.P] 2010.09.19 1.7k
4985 질문 예전 1.12 버전때 봇을 지금 돌리면 4 곰킹베킹 2010.09.19 872
4984 질문 기사가 카오스이동후 포탈열기 질문입니다. 3 거유헌터 2010.09.19 787
4983 질문 아무리 애써봐도 애가 방에들가서 꿈적을안하네요 ㅠㅠ 2 데빌오브스카이 2010.09.19 2.1k
4982 질문 팽드나이프 이니 추가 방법 알려주세요 2 아마쪼 2010.09.19 1.7k
4981 질문 퍼해골로 다이어뎀 돌리는 설정 법 좀 알려주세요. 3 벤치프레스 2010.09.19 1.4k
4980 질문 봇 프로그램에 대한 질문입니다 2 카레이서 2010.09.19 191
4979 질문 부기사가 방에들어와서 그냥서있습니다 2 야다 2010.09.19 558
4978 질문 아이템레벨 확인방법에 관해 질문입니다. 2 Johsua 2010.09.18 1.7k
4977 질문 실행오류에 관하여 2 아마쪼 2010.09.18 686
4976 질문 [11차] 폭발활 이니 작성에 대한 질문입니다.(완료) 2 Kross 2010.09.18 1.8k
4975 질문 이니 조건에 맞지 않는 물건들을 들고옵니다(쉐덴) 3 솔자[B.D] 2010.09.18 1.2k
> 질문 오리지날 함성바바+블리소서 질문드려봅니다.[날아다녀님11차버젼] 1 Sj_Fox 2010.09.18 1.4k
4973 질문 지금 사용중인 봇이 몇버전인지 확인하는법 입니다 8 레더만이살길이다[O.P] 2010.09.18 575
4972 질문 봇 재료이니 질문드립니다. 5 하루일기 2010.09.18 1.8k