인첸봇 enchanter파일 몇개만 알려주셔요..
분류
질문
조회 수
971
추천 수
0
-----------------------------------------------------------------------------------------------
------- Enchanter 파일입니다 --------------------------------------------------------
-----------------------------------------------------------------------------------------------
------- 문의1 : 시간설정 30분후 방나가기..
------- 문의2 : 시간 다되서 나가면서 메시지 보내기
------- 문의3 : 새로운 유저가 들어오면 메시지 보내기------------------------
const _MyEn_RANGE_ENCHANT = 18;
var _MyEn_EnchantList = new Array();
Include("NTBot/MyConfigs/Enchanter.ntl");
function MyMain()
{
var i;
var _countMsg = 0;
var _countInGame = 0;
RegisterEvent(EVENT_GAMEMSG, MyEn_EventChat);
if (_MyEnC_MyMessageIII[0] > 0)
me.maxgametime = 0;
if (_MyEnC_Waypoint > 0)
{
MyVi_TownManager(true);
if (_MyEnC_Waypoint != 2)
{
if (!NTTM_TownMove("waypoint"))
return "NTTM_TownMove()";
if (!MyMo_TakeWaypoint(_MyEnC_Waypoint))
return "MyMo_TakeWaypoint()";
NTM_MakeTP();
if (_MyEnC_isBattleCommand)
MyMo_MoveTo(me.areaid, me.x + 3, me.y);
}
else
{
if (MyMo_MoveToAct1Exit(30) == 0)
return "MyMo_MoveToAct1Exit()";
NTM_MakeTP();
}
}
while (true)
{
if (!NTC_InTown())
{
if (_MyEnC_DoEnchant > 0 || _MyEnC_SendMessage[0] > 0)
{
for (i = 0; i < _MyEn_EnchantList.length; i++)
{
if (!MyUn_GetPlayer(_MyEn_EnchantList[i][0]))
_MyEn_EnchantList.splice(i--, 1);
}
}
if (!_MyEnC_isBattleCommand || me.GetState(51))
MyEn_DoEnchant();
if (_MyEnC_SendMessage[0] > 0)
MyEn_SendMessage();
MyAt_ClearPosition();
}
for (i = 0; i < 5; i++)
{
if (_MyEnC_MasterName != "" && !MyUn_GetPlayer(_MyEnC_MasterName))
return "MyMain()";
if (_MyEnC_MyMessageII[0] > 0 && _countMsg++ > _MyEnC_MyMessageII[0])
{
MyEn_SayII();
_countMsg = 0;
}
if (_MyEnC_MyMessageIII[0] > 0 && _countInGame++ > _MyEnC_MyMessageIII[0])
{
MyEn_SayIII();
return "MyMain()";
}
Delay(1000);
}
}
}
function MyEn_EventChat(msg, type)
{
switch (type)
{
case 4:
if (msg.indexOf(GetLocaleString(3643).split(")")[1]) != -1)
MyEn_Say(msg.split("(")[0]);
break;
}
}
function MyEn_DoEnchant()
{
var _iEnchant;
var _unit;
_unit = NTC_FindUnit(NTC_UNIT_PLAYER);
if (_unit)
{
do
{
if (_unit.name != me.charname && GetDistance(me, _unit) < _MyEn_RANGE_ENCHANT && NTC_InMyParty(_unit.name))
{
_iEnchant = MyEn_CheckEnchant(_unit, false);
if (_iEnchant == -1 ||
!_unit.GetState(16) ||
(_unit.name != _MyEnC_WarcriesName && _MyEnC_DoEnchant > 0 && ((_MyEn_EnchantList[_iEnchant][1] - Math.round(GetTickCount() / 1000)) < _MyEnC_DoEnchant)))
{
if (("/" + MyIL_File("NTBot/MyData/Hostile/Hostile[Name].txt", 0, "/")).indexOf("/" + _unit.name + "/") == -1)
{
NTC_CastSkill(52, NTC_HAND_RIGHT, _unit);
MyEn_CheckEnchant(_unit, true);
}
}
}
} while (_unit.GetNext());
}
_unit = NTC_FindUnit(NTC_UNIT_MERC);
if (_unit)
{
do
{
if (GetDistance(me, _unit) < _MyEn_RANGE_ENCHANT && !_unit.GetState(16) && MyUn_IsParty(_unit) && MyUn_IsEnchant(_unit))
{
if (("/" + MyIL_File("NTBot/MyData/Hostile/Hostile[Name].txt", 0, "/")).indexOf("/" + _unit.name + "/") == -1)
NTC_CastSkill(52, NTC_HAND_RIGHT, _unit);
}
} while (_unit.GetNext());
}
}
function MyEn_CheckEnchant(unit, isSet)
{
for (var i = 0; i < _MyEn_EnchantList.length; i++)
{
if (_MyEn_EnchantList[i][0] == unit.name)
{
if (isSet)
_MyEn_EnchantList[i][1] = Math.round(GetTickCount() / 1000) + (me.GetSkill(52, true) * 24) + 120;
return i;
}
}
return (isSet ? (_MyEn_EnchantList.push([unit.name, Math.round(GetTickCount() / 1000) + (me.GetSkill(52, true) * 24) + 120]) - 1) : -1);
}
function MyEn_SendMessage()
{
var _iEnchant;
var _duration;
var _player = GetPlayerUnit();
if (_player)
{
while (_player.GetNext())
{
if (_player.name != _MyEnC_WarcriesName)
{
_iEnchant = MyEn_CheckEnchant(_player, false);
if (_iEnchant != -1)
{
_duration = _MyEn_EnchantList[_iEnchant][1] - Math.round(GetTickCount() / 1000);
if (_duration < _MyEnC_SendMessage[0] && (_MyEnC_SendMessage[1] < 1 || _duration >= _MyEnC_SendMessage[1]))
{
Say("인첸트: " + _player.name + " (" + ((_duration > 0) ? _duration : 0) + "초)");
NTC_PingDelay(200);
}
}
}
}
}
}
function MyEn_Say(name)
{
if (_MyEnC_MyMessage.length > 1)
{
var _msg = _MyEnC_MyMessage[Random(1, _MyEnC_MyMessage.length - 1)];
if (_msg)
{
if (name)
_msg = _msg.replace(/%N/, name);
Say(_msg);
NTC_PingDelay(200);
}
}
}
function MyEn_SayII()
{
if (_MyEnC_MyMessageII.length > 1)
{
var _msg = _MyEnC_MyMessageII[MyTM_GetRandom(1, _MyEnC_MyMessageII.length - 1)];
if (_msg)
{
if (_MyEn_EnchantList.length > 0)
_msg = _msg.replace(/%P/, _MyEn_EnchantList[Random(0, _MyEn_EnchantList.length - 1)][0]);
Say(_msg);
NTC_PingDelay(200);
}
}
}
function MyEn_SayIII()
{
if (_MyEnC_MyMessageIII.length > 1)
{
var _msg = _MyEnC_MyMessageIII[Random(1, _MyEnC_MyMessageIII.length - 1)];
if (_msg)
{
if (_msg.indexOf("%G") != -1)
{
var _gameName1 = me.gamename.substring(0, me.gamename.lastIndexOf("-") + 1);
var _gameName2 = Number(me.gamename.substring(me.gamename.lastIndexOf("-") + 1)) + 1;
if (_gameName2 < 10)
_gameName2 = "0" + _gameName2;
else if (_gameName2 > 99)
_gameName2 = "00";
_msg = _msg.replace(/%G/, _gameName1 + _gameName2);
}
Say(_msg);
NTC_PingDelay(200);
}
}
}

