Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.80 KB | None | 0 0
  1. RegisterEvent(EVENT_SCRIPTMSG, HostileHandler);
  2. var _hostilepause = false;
  3. var Diablo_PreMessage = "";
  4. var _CSSealsOnly = false;
  5. var _PublicMode = true;
  6. function NTMain(){
  7. Include("libs/common/NTCommon.ntl");
  8. NTC_IncludeLibs();
  9.  
  10. NTC_IncludeConfig("NTBot/char_configs");
  11. NT_LoadConfig();
  12.  
  13. NTSI_LoadNIPFiles("NTBot/item_configs");
  14.  
  15. NTA_Initialize();
  16.  
  17. if(!NTTM_CheckAct()){
  18. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
  19. return;
  20. }
  21. if(me.areaid != 103){
  22. if(!NTTM_TownMove("waypoint")) {
  23. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  24. return;
  25. }
  26. if(!NTM_TakeWaypoint(103)) {
  27. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  28. return;
  29. }
  30. }
  31. NTTMGR_TownManager();
  32. NTTM_TownMove("portalspot");
  33.  
  34. if(NTConfig_UseChatCommandPortal){
  35. while(!NT_DiabloLeechMessageHandler()){
  36. Delay(1500);
  37. }
  38. for(var i = 0 ; i < 100 && me.areaid == 103 ; i++){
  39. NTM_UsePortal("BluePortal", 108, NTConfig_Leader);
  40. Delay(500);
  41. }
  42. }
  43. else{
  44. myStartArea = me.areaid;
  45. while(1){
  46. NTM_UsePortal("BluePortal", 108, NTConfig_Leader);
  47. if (myStartArea != me.areaid) {
  48. break;
  49. }
  50. Delay(500);
  51. }
  52. }
  53. while(me.areaid == 0){
  54. NTC_Delay(2500);
  55. }
  56. NTP_DoPrecast(true, NTConfig_LeechBo);
  57. NTCS_ClearEntrance();
  58. NTCS_OpenSealsInt();
  59. NTCS_KillDiablo();
  60. if(NTConfig_RunScriptAfterDiablo){
  61. Delay(750);
  62. NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  63. }
  64. else{
  65. while(1) {
  66. Delay(1500);
  67. }
  68. }
  69.  
  70. }
  71.  
  72. function NTCS_Say(msg){
  73. if (NTConfig_PublicMode && msg && msg.length > 0){
  74. Say (msg);
  75. NTC_Delay(50);
  76. }
  77. }
  78.  
  79. function NTCS_GetRandomText(){
  80. var s = "";
  81. var i = 0;
  82. while ((i++ < 5) || (s.length == 0))
  83. s = GetLocaleString(Random(1069, 1295));
  84. return s.length > 0 ? s : "Aww.";
  85. }
  86.  
  87. function NTCS_KillSealBoss(monsterName){
  88. for(var i = 0 ; i < 10 ; i++){
  89. NTC_Delay(100);
  90. if(NTA_KillMonster(monsterName)){
  91. if (!_CSSealsOnly) NTA_ClearPosition(20, true, 2);
  92. return true;
  93. }
  94. }
  95. return false;
  96. }
  97.  
  98. function NTCS_ClearEntrance(){
  99. var pos;
  100. if ((_CSSealsOnly == true) || (NTConfig_LeechFrom == "S")){
  101. pos = new Array();
  102. }
  103. else if (CheckCollision(me.areaid, 7784, 5447, 1)){
  104. pos = [
  105. 7794, 5540, 7794, 5515
  106. , 7770, 5499, 7794, 5480, 7803, 5499, 7818, 5499, 7818, 5480, 7818, 5447, 7818, 5428
  107. , 7803, 5421, 7794, 5403, 7784, 5421, 7770, 5428, 7770, 5447, 7770, 5480
  108. , 7770, 5480, 7770, 5447, 7784, 5421
  109. , 7770, 5414, 7770, 5392, 7770, 5363, 7770, 5341
  110. , 7794, 5341
  111. , 7818, 5341, 7818, 5392, 7818, 5363
  112. , 7794, 5363
  113. ];
  114. }
  115. else{
  116. pos = [
  117. 7794, 5540, 7794, 5515
  118. , 7818, 5499, 7794, 5480, 7784, 5499, 7770, 5499, 7770, 5480, 7770, 5447, 7770, 5428
  119. , 7784, 5421, 7794, 5403, 7803, 5421, 7818, 5428, 7818, 5447, 7818, 5480
  120. , 7818, 5447, 7803, 5421
  121. , 7818, 5414, 7818, 5392, 7818, 5363, 7818, 5341
  122. , 7794, 5341
  123. , 7770, 5341, 7770, 5392, 7770, 5363
  124. , 7794, 5363
  125. ];
  126. }
  127. if(_PublicMode)
  128. pos = pos.concat([7794, 5363, 7770, 5363, 7770, 5341, 7818, 5363, 7818, 5341]);
  129.  
  130. while (pos.length > 0){
  131. NTM_MoveTo(me.areaid, pos.shift(), pos.shift());
  132. NTA_ClearPosition(20, true, 2);
  133. }
  134. NTM_MoveTo(me.areaid, 7794, 5341);
  135. if(_PublicMode){
  136. NTM_MoveTo(me.areaid, 7794, 5341);
  137. NTA_ClearPosition(20, true, 2);
  138. }
  139. else if ((_CSSealsOnly == true) || (NTConfig_LeechFrom == "S")){
  140. NTM_MoveTo(me.areaid, 7792, 5292);
  141. NTM_MoveTo(me.areaid, 7858, 5294);
  142. }
  143. }
  144.  
  145. function NTCS_KillDiablo(){
  146. NTM_MoveTo(me.areaid, 7792, 5292);
  147. NTP_DoPrecast(true, NTConfig_LeechBo);
  148. if(me.classid == NTC_CHAR_CLASS_ASSASSIN) {
  149. if(NTConfig_UseTraps) {
  150. var _attackPos2 = [7784,5290,7793,5284,7801,5289,7797,5299,7787,5299];
  151. for(var i=0;i<5;i++) {
  152. if(i == 0 || i == 2 || i == 3) // Added delays to prevent trap miscast
  153. NTC_Delay(25);
  154. if(NTConfig_ActBossTrapSet[i] > 0)
  155. NTC_CastSkill(NTConfig_ActBossTrapSet[i], NTC_HAND_RIGHT, _attackPos2[i*2],_attackPos2[(i*2)+1]);
  156. }
  157. }
  158. }
  159. var count = 0;
  160. while(!NTA_KillMonster(243)){
  161. NTC_Delay(200);
  162. if (count++ >= 30) // hmm 6 seconds ?
  163. break;
  164. }
  165. NTSI_PickItems();
  166. NTM_MoveTo(me.areaid, 7792, 5292);
  167. }
  168.  
  169. function NTCS_OpenSealError(id){
  170. NTC_SendMsgToScript("NTBotGame.ntj", "NTCS_OpenSealsInt(" + id + ")");
  171.  
  172. var msg = "Unable to find seal : ";
  173. switch (id){
  174. case 392 : msg += GetLocaleString(2853); break;
  175. case 394 : msg += GetLocaleString(2852); break;
  176. case 396 : msg += GetLocaleString(2851); break;
  177. default : break;
  178. }
  179. msg += ". Aborting ...";
  180. NTTM_CheckAct();
  181. NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  182. }
  183.  
  184. function NTCS_OpenSealsInt(){
  185. //[0,1,2] //0=Venom(First) 1=DeSeis(Second) 2=Vizer(Third)
  186. //[1,0,2] //1=DeSeis(First) 0=Venom(Second) 2=Vizer(Third)
  187. var _order = [2,1,0]; //<-----------------------------------Change here.//2=Vizer(Fist) 1=Deseis(Second) 0=Venom(Third)
  188. var _RandomSeals = false; //Do Random Seals if your bored.
  189. var unit, count = 0, i = 0;
  190. if (_RandomSeals){
  191. rand1 = Math.floor(Math.random()*_order.length);
  192. rand2 = Math.floor(Math.random()*_order.length);
  193. rand3 = Math.floor(Math.random()*_order.length);
  194. var _n=0, _n2=0, _n3=0;
  195. for (e = 0; e < _order.length; e++){
  196. switch(e){
  197. case 0: var _n = rand1;
  198. case 1: rand2 = Math.floor(Math.random()*_order.length); if (rand2 != _n) _n2 = rand2;
  199. case 2: rand3 = Math.floor(Math.random()*_order.length); if (rand3 != _n && rand3 != _n2) _n3 = rand3;
  200. }
  201. }
  202. var _order = [_n,_n2,_n3];
  203. }
  204. for ( i = 0; i < _order.length; i++){
  205. switch(_order[i]){
  206. case 0:
  207. unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT, 392);
  208. if(!unit) NTCS_SealsError(392);
  209. if(unit[0].roomx*5 + unit[0].x == 7893)
  210. count += NTCS_OpenSealVenomInt(1);
  211. else
  212. count += NTCS_OpenSealVenomInt(2);
  213. break;
  214. case 1:
  215. unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT, 394);
  216. if(!unit) NTCS_SealsError(394);
  217. if(unit[0].roomx*5 + unit[0].x == 7773)
  218. count += NTCS_OpenSealDeSeisInt(1);
  219. else
  220. count += NTCS_OpenSealDeSeisInt(2);
  221. break;
  222. case 2:
  223. unit = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT, 396);
  224. if(!unit) NTCS_SealsError(396);
  225. if(unit[0].roomy*5 + unit[0].y == 5275)
  226. count += NTCS_OpenSealVizierInt(1);
  227. else
  228. count += NTCS_OpenSealVizierInt(2);
  229. break;
  230. }
  231. }
  232. if(NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)){
  233. NTTMGR_VisitTown();
  234. }
  235. return count;
  236. }
  237.  
  238. function NTCS_OpenSealInt(classid, x, y){
  239. var retry = 0;
  240. NTM_MoveTo(me.areaid, x, y);
  241. if (!_CSSealsOnly) NTA_ClearPosition(20, true, 2);
  242. var seal = NTC_FindUnit(NTC_UNIT_OBJECT, classid);
  243. if(!seal) NTCS_OpenSealError(classid);
  244. while ((retry++ < 100) && (seal.mode == 0)){
  245. if(GetDistance(me, seal) > 2)
  246. NTM_MoveTo(seal.areaid, seal.x + 4, seal.y);
  247. //NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, seal);
  248. NTC_Delay(50);
  249. if (seal && seal.mode != 0) break;
  250. NTC_Delay(500);
  251. NTM_MoveTo(seal.areaid, seal.x -6, seal.y - 4);
  252. }
  253. return seal.mode > 0 ? 1 : 0;
  254. }
  255.  
  256. function NTCS_OpenSealVizierInt(type){
  257. var pos;
  258. var count = 0;
  259. var monsterName = GetLocaleString(2851);
  260. if (_CSSealsOnly == false){
  261. if (type == 1)
  262. pos = [
  263. 7763, 5275, 7763, 5315, 7747, 5292, 7713, 5275, 7730, 5292, 7713, 5315, 7713, 5292
  264. , 7684, 5292, 7677, 5315, 7650, 5315, 7669, 5292, 7677, 5275, 7650, 5275
  265. ];
  266. else
  267. pos = [
  268. 7763, 5275, 7763, 5315, 7747, 5295, 7713, 5275, 7730, 5295, 7713, 5315
  269. , 7694, 5315, 7675, 5315, 7656, 5315
  270. ];
  271. while (pos.length > 0){
  272. NTM_MoveTo(me.areaid, pos.shift(), pos.shift());
  273. NTA_ClearPosition(20, true, 2);
  274. }
  275. }
  276. else{
  277. NTM_MoveTo(7747, 5293);
  278. NTM_MoveTo(7713, 5293);
  279. NTM_MoveTo(7669, 5315);
  280. //NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 396);
  281. }
  282. if (type == 1){
  283. count += NTCS_OpenSealInt(396, 7659, 5277);
  284. NTM_MoveTo(me.areaid, 7669, 5292);
  285. NTCS_KillSealBoss(monsterName);
  286. NTSI_PickItems();
  287. NTM_MoveTo(me.areaid, 7684, 5292);
  288. NTM_MoveTo(me.areaid, 7654, 5310);
  289. NTM_MoveTo(me.areaid, 7654, 5310);
  290. count += NTCS_OpenSealInt(395, 7654, 5310);
  291. NTA_ClearPosition(20, true, 2);
  292. NTM_MoveTo(7684, 5293);
  293. }
  294. else{
  295. count += NTCS_OpenSealInt(396, 7651, 5310);
  296. NTM_MoveTo(me.areaid, 7675, 5315);
  297. NTCS_KillSealBoss(monsterName);
  298. NTSI_PickItems();
  299. NTM_MoveTo(me.areaid, 7656, 5295);
  300. NTM_MoveTo(me.areaid, 7656, 5269);
  301. NTM_MoveTo(me.areaid, 7656, 5295);
  302. count += NTCS_OpenSealInt(395, 7650, 5276);
  303. NTA_ClearPosition(20, true, 2);
  304. NTM_MoveTo(7675, 5315);
  305. }
  306. NTM_MoveTo(7730, 5293);
  307. return count;
  308. }
  309.  
  310. function NTCS_OpenSealDeSeisInt(type){
  311. var pos;
  312. var count = 0;
  313. var monsterName = GetLocaleString(2852);
  314. if (_CSSealsOnly == false){
  315. if (type == 1)
  316. pos = [
  317. 7813, 5259, 7813, 5229, 7792, 5244, 7771, 5229
  318. , 7771, 5215, 7771, 5193, 7792, 5193, 7813, 5193
  319. , 7813, 5174, 7813, 5155, 7792, 5155, 7771, 5155
  320. , 7767, 5162
  321. ];
  322. else
  323. pos = [
  324. 7813, 5259, 7792, 5244, 7771, 5229, 7771, 5244, 7813, 5229
  325. , 7813, 5215, 7813, 5193, 7792, 5193, 7771, 5193
  326. , 7771, 5174, 7771, 5155, 7792, 5155, 7813, 5155
  327. ];
  328. while (pos.length > 0){
  329. NTM_MoveTo(me.areaid, pos.shift(), pos.shift());
  330. NTA_ClearPosition(20, true, 2);
  331. }
  332. }
  333. else{
  334. NTM_MoveTo(7792, 5229);
  335. NTM_MoveTo(7792, 5193);
  336. //NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 394);
  337. }
  338. if (type == 1){
  339. count += NTCS_OpenSealInt(394, 7769, 5158);
  340. NTM_MoveTo(me.areaid, 7768, 5162);
  341. NTM_MoveTo(me.areaid, 7771, 5188);
  342. NTM_MoveTo(me.areaid, 7780, 5215);
  343. NTCS_KillSealBoss(monsterName);
  344. NTSI_PickItems();
  345. }
  346. else{
  347. count += NTCS_OpenSealInt(394, 7810, 5156);
  348. NTM_MoveTo(me.areaid, 7771, 5155);
  349. NTM_MoveTo(me.areaid, 7780, 5174);
  350. NTCS_KillSealBoss(monsterName);
  351. NTSI_PickItems();
  352. }
  353. if (_CSSealsOnly == false){
  354. if (type == 1)
  355. pos = [7771, 5229, 7792, 5244, 7771, 5259];
  356. else
  357. pos = [7813, 5229, 7792, 5244, 7771, 5259];
  358. while (pos.length > 0){
  359. NTM_MoveTo(me.areaid, pos.shift(), pos.shift());
  360. NTA_ClearPosition(20, true, 2);
  361. }
  362. }
  363. else{
  364. NTM_MoveTo(7792, 5229);
  365. NTM_MoveTo(7771, 5259);
  366. }
  367. return count;
  368. }
  369.  
  370. function NTCS_OpenSealVenomInt(type){
  371. var pos;
  372. var count = 0;
  373. var monsterName = GetLocaleString(2853);
  374. if (_CSSealsOnly == false){
  375. if (type == 1)
  376. pos = [
  377. 7825, 5315, 7841, 5294, 7858, 5275, 7858, 5315, 7841, 5294, 7858, 5294
  378. , 7882, 5294, 7893, 5315, 7903, 5294, 7933, 5294, 7915, 5270, 7903, 5294
  379. , 7893, 5318
  380. ];
  381. else
  382. pos = [
  383. 7825, 5315, 7841, 5294, 7858, 5294, 7874, 5315, 7874, 5275
  384. , 7885, 5275, 7905, 5275, 7933, 5275, 7933, 5294, 7993, 5315
  385. , 7909, 5315
  386. ];
  387. while (pos.length > 0){
  388. NTM_MoveTo(me.areaid, pos.shift(), pos.shift());
  389. NTA_ClearPosition(20, true, 2);
  390. }
  391. }
  392. //else
  393. //NTM_MoveToPresetUnit(me.areaid, NTC_UNIT_OBJECT, 392);
  394. if (type == 1){
  395. count += NTCS_OpenSealInt(392, 7895, 5318);
  396. NTM_MoveTo(me.areaid, 7900, 5294);
  397. NTCS_KillSealBoss(monsterName);
  398. NTSI_PickItems();
  399. NTM_MoveTo(me.areaid, 7903, 5294);
  400. count += NTCS_OpenSealInt(393, 7915, 5280);
  401. }
  402. else{
  403. count += NTCS_OpenSealInt(392, 7916, 5310);
  404. NTM_MoveTo(me.areaid, 7933, 5294);
  405. NTCS_KillSealBoss(monsterName);
  406. NTSI_PickItems();
  407. NTM_MoveTo(me.areaid, 7933, 5294);
  408. count += NTCS_OpenSealInt(393, 7905, 5277);
  409. }
  410. if (_CSSealsOnly == false){
  411. if (type == 1)
  412. pos = [7858, 5294, 7841, 5294, 7825, 5275];
  413. else
  414. pos = [7874, 5275, 7858, 5294, 7825, 5275];
  415. while (pos.length > 0){
  416. NTM_MoveTo(me.areaid, pos.shift(), pos.shift());
  417. NTA_ClearPosition(20, true, 2);
  418. }
  419. }
  420. else
  421. NTM_MoveTo(7825, 5275);
  422. return count;
  423. }
  424.  
  425. function NT_KillMonster(classid, retry){
  426. if(arguments.length < 2)
  427. retry = 0;
  428. var _target;
  429. if(NTConfig_AttackSkill[1] < 1)
  430. return false;
  431. _target = NTC_FindUnit(NTC_UNIT_MONSTER, classid, retry);
  432. if(!_target)
  433. return false;
  434. if(_target.IsAttackable()){
  435. var _attackcount = 0;
  436. while(_attackcount < 300 && NTA_IsValidMonster(_target)){
  437. if(NTA_Attack(_target, (_attackcount%30) == 0) < 2)
  438. break;
  439. _attackcount++;
  440. }
  441. }
  442. return (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12);
  443. }
  444.  
  445. function HostileHandler(msg){
  446. if(msg == "pause"){
  447. if(_hostilepause){
  448. Print("yc3Resuming...");
  449. _hostilepause = false;
  450. }
  451. else {
  452. Print("yc1Pausing to kill hostiles...");
  453. _hostilepause = true;
  454.  
  455. ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
  456. ClickMap(NTC_CLICK_RUP, NTC_SHIFT_NONE, null);
  457.  
  458. while(_hostilepause)
  459. NTC_Delay(250);
  460. }
  461. }
  462. }
  463.  
  464. function NT_DiabloLeechMessageHandler(){
  465. var _msg = NT_File("logs/messagecomands/"+me.charname+"-diablo.txt", 0);
  466. if (_msg && _msg != Diablo_PreMessage){
  467. Diablo_PreMessage = _msg;
  468. if(_msg.substring(_msg.indexOf("/") + 1) == "takedtp"){
  469. //Print(COLOR_2 + "retrieved take tp message diablo");
  470. return true;
  471. }
  472. }
  473. return false;
  474. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement