Guest User

Untitled

a guest
Apr 24th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.36 KB | None | 0 0
  1. var _MyDT_PreMessage = "";
  2. var _sealpos = 0;
  3. var safex;
  4. var safey;
  5. var prevx;
  6. var prevy;
  7. var leader = "Ypk"; // Must have Sorceress name here cast sensitive Must have Teleport pre Blizzard
  8. var barb = "Tf-SubSoil"; // Must have Barbarian name here cast sensitive Must have BO
  9. var din = "SUPERBOTTER"; // Must have Paladin name here cast sensitive Must have hammer/conc
  10. var din2 = "SUPERJUVER"; // Optional Name, Must have 4th din for Speed 4
  11.  
  12. var dosv = 0; // 1 Enables Special Venom Kills
  13. var speed = 2;
  14. var sorc2job = 2;
  15.  
  16. //sorc jobs
  17. // 2 andy meph
  18. // 1 cs
  19. // 3 exp
  20.  
  21. // ----------------------------------------------------------------------------------------------------------------------
  22. // ------Players--Speed----Run Details-----------------------------------------------------------------------------------
  23. // ----------------------------------------------------------------------------------------------------------------------
  24. // Config S D B : 1 All players will complete each seal and kill any remaining monsters before moving on
  25. // Config S D B : 2 All players will complete each seal and kill a smaller amount of remaining monsters
  26. // Config S D B : 3 All players complete seal 1, Sorc will taxi to Seis then Solo Vizier
  27. // Config S D D B : 4 Sorc Taxis Din1 to Seal 1, Din2 to Seal 2, Then solos Vizier. Fastest Speed.
  28. // 1: 2:30-3 min runs 2: 2 min runs 3: 1:30 runs 4: 1:15
  29.  
  30. // ---------------
  31. // TODO LIST
  32. // ---------------
  33. // Add more effective Unique VLORD Party functions - Perhaps toggler for running them, fix dead vlord reruns as well
  34. // Work with Auto party, doesnt seem to send invites when interupted by other player joins
  35. // Add purpose to the ZON and NECRO Classes - Perhaps Through NT Attack
  36. // Add Compatibility for #2 Sorceress, Runs with CS Team, or Run bosses/exp shrines
  37. // Add Compatibility for Non usable Cs leechers, Barb-Din-Sorc
  38.  
  39.  
  40. function NTMain()
  41. {
  42. Include("libs/common/NTCommon.ntl");
  43. NTC_IncludeLibs();
  44. NTC_IncludeConfig("NTBot/char_configs");
  45.  
  46. NT_LoadConfig();
  47. NTSI_LoadNIPFiles("NTBot/item_configs");
  48.  
  49. NTA_Initialize();
  50.  
  51. if(!NTTM_CheckAct()) {
  52. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
  53. return;
  54. }
  55.  
  56. NTC_Delay(500);
  57.  
  58. if(!NTTM_CheckAct(4)) {
  59. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
  60. return;
  61. }
  62.  
  63. RegisterEvent(EVENT_GAMEMSG, quitfunc);
  64.  
  65. TD_File("NTBot/bots/TeamD.txt", 1);
  66.  
  67. if(me.classid == 1 && me.name == leader) {
  68.  
  69. if(speed == 1)
  70. Say("CS SPEED IS SET TO 1: FULL CS + Champs");
  71.  
  72. if(speed == 2)
  73. Say("CS SPEED IS SET TO 2: FULL CS - Champs");
  74.  
  75. if(speed == 3)
  76. Say("CS SPEED IS SET TO 3: SORC SOLOS VIZIER");
  77.  
  78. if(speed == 4)
  79. Say("CS SPEED IS SET TO 4: SORC TAXIS 2 DINS + SOLOS VIZIER");
  80.  
  81.  
  82. if(!NTTM_CheckAct(1)) {
  83. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
  84. return;
  85. }
  86.  
  87. NTTMGR_TownManager();
  88.  
  89. //if(speed != 4)
  90. //{
  91. // NTTMGR_VisitJamella(true);
  92. //}
  93.  
  94. Print("Loading sorc function");
  95.  
  96. TD_Sorcfunc();
  97. }
  98.  
  99. if(me.classid == 1 && me.name != leader)
  100. {
  101. Print("Loading Sorc 2 function");
  102. NTTMGR_TownManager();
  103. NTTM_TownMove("portalspot");
  104.  
  105. if(!NTTM_TownMove("waypoint"))
  106. {
  107. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  108. return;
  109. }
  110.  
  111. if(!NTM_TakeWaypoint(107))
  112. {
  113. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  114. return;
  115. }
  116.  
  117. NTC_Delay(500);
  118. NTM_MoveTo(me.areaid, me.x+5, me.y);
  119.  
  120. if(!NTC_InMyParty(leader))
  121. NTC_Delay(8000);
  122. if(!NTC_InMyParty(leader))
  123. ExitGame();
  124.  
  125. while(1) {
  126. TD_TeamCommands();
  127. Delay(200);
  128. }
  129.  
  130. }
  131.  
  132. if(me.classid == 3)
  133. {
  134. Print("Loading hammer function");
  135. NTTMGR_TownManager();
  136. NTTM_TownMove("portalspot");
  137.  
  138. if(!NTTM_TownMove("waypoint"))
  139. {
  140. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  141. return;
  142. }
  143.  
  144. if(!NTM_TakeWaypoint(107))
  145. {
  146. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  147. return;
  148. }
  149.  
  150. NTC_Delay(500);
  151. NTM_MoveTo(me.areaid, me.x+5, me.y);
  152.  
  153. if(!NTC_InMyParty(leader))
  154. NTC_Delay(8000);
  155. if(!NTC_InMyParty(leader))
  156. ExitGame();
  157.  
  158. while(1) {
  159. TD_TeamCommands();
  160. Delay(200);
  161. }
  162. }
  163.  
  164. if(me.classid == 4)
  165. {
  166. Print("Loading barb function");
  167.  
  168. //NTTMGR_TownManager();
  169. //NTTM_TownMove("portalspot");
  170.  
  171. if(!NTTM_TownMove("waypoint"))
  172. {
  173. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  174. return;
  175. }
  176.  
  177. if(!NTM_TakeWaypoint(107))
  178. {
  179. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  180. return;
  181. }
  182.  
  183. NTC_Delay(500);
  184. NTM_MoveTo(me.areaid, me.x+5, me.y);
  185.  
  186.  
  187. if(!NTC_InMyParty(leader))
  188. NTC_Delay(8500);
  189. if(!NTC_InMyParty(leader))
  190. ExitGame();
  191.  
  192. while(1) {
  193. TD_TeamCommands();
  194. Delay(200);
  195. }
  196. }
  197.  
  198. if((me.classid == 0 || me.classid == 2))
  199. {
  200. Print("Loading Leecher function");
  201. NTTMGR_TownManager();
  202. NTTM_TownMove("portalspot");
  203.  
  204. if(!NTTM_TownMove("waypoint"))
  205. {
  206. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  207. return;
  208. }
  209.  
  210. if(!NTM_TakeWaypoint(107))
  211. {
  212. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  213. return;
  214. }
  215.  
  216. NTC_Delay(500);
  217. NTM_MoveTo(me.areaid, me.x+5, me.y);
  218.  
  219. NTC_Delay(6000);
  220. if(!NTC_InMyParty(leader))
  221. ExitGame();
  222.  
  223. while(1) {
  224. TD_TeamCommands();
  225. Delay(200);
  226. }
  227.  
  228. }
  229.  
  230. NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  231. }
  232.  
  233. function TD_Sorcfunc() { //work in progress!
  234. NTC_Delay(200);
  235.  
  236. if(!NTTM_TownMove("waypoint")) {
  237. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  238. return;
  239. }
  240.  
  241. if(!NTM_TakeWaypoint(107)) {
  242. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  243. return;
  244. }
  245.  
  246. NTM_MoveTo(me.areaid, me.x+5, me.y);
  247.  
  248. while(!NTC_InMyParty(barb))
  249. Delay(500);
  250. while(!NTC_InMyParty(din))
  251. Delay(500);
  252.  
  253. while(TD_IsBarbOut(107))
  254. Delay(500);
  255.  
  256.  
  257. while(TD_IsPalaOut(107))
  258. Delay(500);
  259.  
  260. if(NTC_InMyParty(din2))
  261. {
  262. while(TD_IsPalaOut2(107))
  263. Delay(500);
  264. }
  265.  
  266. Delay(500);
  267.  
  268. TD_File("NTBot/bots/TeamD.txt", 1, ".bo");
  269.  
  270. NTP_DoPrecast(true);
  271.  
  272. while(!me.GetState(32))
  273. NTC_Delay(2500);
  274.  
  275.  
  276. if(!TD_MoveTo(108, 7802, 5591)) { //urdars! and svs!
  277. NTC_SendMsgToScript("NTBotGame.ntj", "TD_MoveTo()");
  278. return;
  279. }
  280.  
  281.  
  282. if(TD_DetectLayout(3) == 1) {
  283. TD_MoveTo(me.areaid, 7900, 5291);
  284. TD_Deploy(7920, 5291, 15, 15, 0, 0);
  285. for(var i = 0 ; i < 5 ; i++) {
  286. if(NTM_MakeTP())
  287. break;
  288. }
  289. } else {
  290. TD_MoveTo(me.areaid, 7910, 5278);
  291. TD_Deploy(7930, 5278, 0, 15, 15, 0);
  292. for(var i = 0 ; i < 5 ; i++) {
  293. if(NTM_MakeTP())
  294. break;
  295. }
  296. }
  297.  
  298. TD_File("NTBot/bots/TeamD.txt", 1, ".s3"); //infector
  299.  
  300.  
  301. if(!TD_InfectorSeal()){
  302. NTC_SendMsgToScript("NTBotGame.ntj", "Seal opening");
  303. return;
  304. }
  305.  
  306. ////////////////////////////////////
  307. if(TD_DetectLayout(3) == 1) {
  308. TD_MoveTo(me.areaid, 7900, 5291);
  309.  
  310. } else {
  311. TD_MoveTo(me.areaid, 7910, 5278);
  312.  
  313. }
  314.  
  315.  
  316. if(NTC_InMyParty(din2) && speed == 4)
  317. {
  318. NTM_MoveTo(me.areaid, safex, safey);
  319. NTA_KillMonster(GetLocaleString(2853));
  320. NTSI_PickItems();
  321. }
  322. else
  323. {
  324. while(!TD_IsPalaOut()) {
  325.  
  326. if(speed != 4)
  327. {
  328. NTA_KillMonster(GetLocaleString(2853));
  329. //NTA_ClearPosition(8);
  330. NTSI_PickItems();
  331. NTM_MoveTo(me.areaid, safex, safey);
  332. }
  333. }
  334. }
  335.  
  336.  
  337. //if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
  338. //{
  339. //NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
  340. //return;
  341. //}
  342.  
  343. if(TD_DetectLayout(2) == 1) {
  344. TD_MoveTo(me.areaid, 7776, 5230);
  345. TD_Deploy(7776, 5220, 0, 0, 15, 15);
  346. for(var i = 0 ; i < 5 ; i++) {
  347. if(NTM_MakeTP())
  348. break;
  349. }
  350. } else {
  351. TD_MoveTo(me.areaid, 7779, 5200);
  352. TD_Deploy(7779, 5180, 0, 0, 15, 15);
  353. for(var i = 0 ; i < 5 ; i++) {
  354. if(NTM_MakeTP())
  355. break;
  356. }
  357. }
  358.  
  359. TD_File("NTBot/bots/TeamD.txt", 1, ".s2"); //de seis
  360.  
  361. if(!TD_DeSeisSeal()){
  362. NTC_SendMsgToScript("NTBotGame.ntj", "Seal opening");
  363. return;
  364. }
  365.  
  366. //NTM_MoveTo(me.areaid, safex, safey);
  367. if(TD_DetectLayout(2) == 1) {
  368. TD_MoveTo(me.areaid, 7776, 5230);
  369.  
  370. } else {
  371. TD_MoveTo(me.areaid, 7779, 5200);
  372.  
  373. }
  374.  
  375. if(NTC_InMyParty(din2) && speed == 4)
  376. {
  377. Delay(200);
  378. }
  379. else if(speed == 3)
  380. Delay(200);
  381.  
  382. else
  383. {
  384. while(!TD_IsPalaOut()) {
  385. NTA_KillMonster(GetLocaleString(2852));
  386. //NTA_ClearPosition(8);
  387. NTSI_PickItems();
  388. NTM_MoveTo(me.areaid, safex, safey);}
  389. }
  390.  
  391. //if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
  392. //{
  393. //NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
  394. //return;
  395. //}
  396.  
  397. if(TD_DetectLayout(1) == 1) {
  398. TD_MoveTo(me.areaid, 7701, 5299);
  399. TD_Deploy(7681, 5299, 0, 0, 15, 15);
  400. for(var i = 0 ; i < 5 ; i++) {
  401. if(NTM_MakeTP())
  402. break;
  403. }
  404. } else {
  405. TD_MoveTo(me.areaid, 7700, 5313);
  406. TD_Deploy(7680, 5313, 15, 15, 0, 0);
  407. for(var i = 0 ; i < 5 ; i++) {
  408. if(NTM_MakeTP())
  409. break;
  410. }
  411. }
  412.  
  413. //if(TD_IsPlayerOut())
  414. //{
  415. //TD_File("NTBot/bots/TeamD.txt", 1, ".s1"); //vizier
  416. //Delay(100); //1000
  417. //}
  418.  
  419. TD_File("NTBot/bots/TeamD.txt", 1, ".s1"); //vizier
  420.  
  421. if(!TD_VizierSeal()){
  422. NTC_SendMsgToScript("NTBotGame.ntj", "Seal opening");
  423. return;
  424. }
  425.  
  426. //NTM_MoveTo(me.areaid, safex, safey);
  427. //////////////////////////////////////
  428. if(TD_DetectLayout(1) == 1) {
  429. TD_MoveTo(me.areaid, 7701, 5299);
  430.  
  431. } else {
  432. TD_MoveTo(me.areaid, 7700, 5313);
  433. s
  434. }
  435.  
  436. while(!NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(2851), 20))
  437. Delay(1000);
  438.  
  439. //Delay(1500);
  440.  
  441. //while(!TD_IsPalaOut()) {
  442. NTA_KillMonster(GetLocaleString(2851));
  443. //NTA_ClearPosition(15);
  444. NTSI_PickItems();
  445. NTM_MoveTo(me.areaid, safex, safey);
  446. //}
  447.  
  448. //if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
  449. //{
  450. //NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
  451. //return;
  452. //}
  453.  
  454. NTP_DoPrecast(true);
  455.  
  456. if(!NTM_MoveTo(me.areaid, 7792, 5292)) {
  457. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
  458. return;
  459. }
  460.  
  461. NTM_MakeTP();
  462.  
  463. TD_File("NTBot/bots/TeamD.txt", 1, ".d");
  464.  
  465. while(!NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100))
  466. Delay(1000);
  467.  
  468. if(!TD_KillMonster(243))
  469. {
  470. NTC_SendMsgToScript("NTBotGame.ntj", "TD_KillMonster()");
  471. return;
  472. }
  473.  
  474. //Delay(2000);
  475. NTSI_PickItems();
  476.  
  477. }
  478.  
  479. //--internal functions--
  480.  
  481. function quitfunc(msg, type) { //quit when leader leaves game
  482. if(msg.indexOf(leader) != -1 && (msg.indexOf("weaken") != -1 || msg.indexOf("timeout") != -1)) { //if leader quits
  483. //if(msg.indexOf("weaken") != -1 || msg.indexOf("timeout") != -1) { //if anyone quits
  484. NTC_Delay(500);
  485. ExitGame();
  486. }
  487. }
  488.  
  489. function TD_Preattack(classid, extrahammers) { //extra hammers = hammers cast after the seal boss is spawned
  490. NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);
  491. while(!NTC_FindUnit(NTC_UNIT_MONSTER, classid))
  492. NTC_CastSkill(NTConfig_AttackSkill[3], 2);
  493. for(var i = 0 ; i < extrahammers ; i++) {
  494. NTC_CastSkill(NTConfig_AttackSkill[3], 2);
  495. }
  496. }
  497.  
  498. function TD_VizierSeal() { //vizier
  499. for(var i = 0 ; i < 5 ; i++){
  500. NTM_MoveToPresetUnit(me.areaid, 2, 395);
  501. var _seal = NTC_FindUnit(NTC_UNIT_OBJECT, 395, 5);
  502. NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
  503.  
  504. NTC_Delay(250);
  505.  
  506. if(_seal.mode <= 0)
  507. NTM_MoveTo(me.areaid, safex, safey);
  508. else
  509. break;
  510.  
  511. NTC_Delay(250);
  512.  
  513. if(i == 4 && _seal.mode <= 0)
  514. return false;
  515. }
  516. for(i = 0 ; i < 5 ; i++){
  517. NTM_MoveToPresetUnit(me.areaid, 2, 396);
  518. _seal = NTC_FindUnit(NTC_UNIT_OBJECT, 396, 5);
  519. NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
  520.  
  521. NTC_Delay(250);
  522.  
  523. if(_seal.mode <= 0)
  524. NTM_MoveTo(me.areaid, safex, safey);
  525. else
  526. break;
  527.  
  528. NTC_Delay(250);
  529.  
  530. if(i == 4 && _seal.mode <= 0)
  531. return false;
  532. }
  533. return true;
  534. }
  535.  
  536. function TD_DeSeisSeal(){ //de seis
  537. for(var i = 0 ; i < 5 ; i++){
  538. NTM_MoveToPresetUnit(me.areaid, 2, 394);
  539. _seal = NTC_FindUnit(NTC_UNIT_OBJECT, 394, 5);
  540. NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
  541.  
  542. NTC_Delay(250);
  543.  
  544. if(_seal.mode <= 0)
  545. NTM_MoveTo(me.areaid, safex, safey);
  546. else
  547. break;
  548.  
  549. NTC_Delay(250);
  550.  
  551. if(i == 4 && _seal.mode <= 0)
  552. return false;
  553. }
  554. return true;
  555. }
  556.  
  557. function TD_InfectorSeal() { //infector
  558. for(var i = 0 ; i < 5 ; i++){
  559. NTM_MoveToPresetUnit(me.areaid, 2, 393);
  560. _seal = NTC_FindUnit(NTC_UNIT_OBJECT, 393, 5);
  561. NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
  562.  
  563. NTC_Delay(350);
  564.  
  565. if(_seal.mode <= 0)
  566. NTM_MoveTo(me.areaid, safex, safey);
  567. else
  568. break;
  569.  
  570. NTC_Delay(250);
  571.  
  572. if(i == 4 && _seal.mode <= 0)
  573. return false;
  574. }
  575. for(i = 0 ; i < 5 ; i++){
  576. NTM_MoveToPresetUnit(me.areaid, 2, 392);
  577. _seal = NTC_FindUnit(NTC_UNIT_OBJECT, 392, 5);
  578. NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _seal);
  579.  
  580. NTC_Delay(350);
  581.  
  582. if(_seal.mode <= 0)
  583. NTM_MoveTo(me.areaid, safex, safey);
  584. else
  585. break;
  586.  
  587. NTC_Delay(250);
  588.  
  589. if(i == 4 && _seal.mode <= 0)
  590. return false;
  591. }
  592. return true;
  593. }
  594.  
  595. function TD_TeamCommands() {
  596. var _msg = TD_File("NTBot/bots/TeamD.txt", 0);
  597.  
  598. if (_msg && _msg != _MyDT_PreMessage) {
  599. _MyDT_PreMessage = _msg;
  600.  
  601. switch (_msg.substring(_msg.indexOf("/") + 1)) {
  602. case ".bo":
  603.  
  604. if(me.classid == 1 && me.name != leader)
  605. { //Sorceress NON LEADER
  606.  
  607. if(me.areaid == 107 && NTC_InMyParty(leader))
  608. {
  609. NTP_DoPrecast(true);
  610.  
  611. //while(!me.GetState(32))
  612. NTC_Delay(4000);
  613.  
  614. if(!NTTM_CheckAct())
  615. NTM_UsePortal("BluePortal", 103, barb);
  616.  
  617. NTTM_TownMove("portalspot");
  618.  
  619. if(sorc2job == 2)
  620. {
  621. while(NTC_InMyParty(leader))
  622. {
  623. Andy();
  624.  
  625. //if(NTC_InMyParty(leader))
  626. Delay(500);
  627.  
  628. Meph();
  629.  
  630. //while(NTC_InMyParty(leader))
  631. //Delay(500);
  632. }
  633.  
  634. }
  635. }
  636. }
  637.  
  638. if(me.classid == 3)
  639. { //Hammerdin
  640.  
  641. if(me.areaid == 107 && NTC_InMyParty(leader))
  642. {
  643. NTP_DoPrecast(true);
  644.  
  645. //while(!me.GetState(32))
  646. NTC_Delay(4000);
  647.  
  648. if(!NTTM_CheckAct())
  649. NTM_UsePortal("BluePortal", 103, barb);
  650.  
  651. NTTM_TownMove("portalspot");
  652. }
  653. }
  654.  
  655. if(me.classid == 4)
  656. { //Barb
  657.  
  658. if(me.areaid == 107 && NTC_InMyParty(leader))
  659. {
  660. NTP_DoPrecast(true);
  661. if(!NTTM_CheckAct())
  662. NTM_UsePortal("BluePortal", 103, leader);
  663.  
  664. NTTMGR_TownManager();
  665.  
  666. NTTM_TownMove("portalspot");
  667. }
  668. }
  669.  
  670. if((me.classid == 0 || me.classid == 2))
  671. { //Leecher
  672.  
  673. if(me.areaid == 107 && NTC_InMyParty(leader))
  674. {
  675.  
  676. NTC_Delay(500);
  677. NTP_DoPrecast(true);
  678.  
  679. while(!me.GetState(32))
  680. NTC_Delay(2000);
  681.  
  682. if(!NTM_UsePortal("BluePortal", 103, leader)) //or make my own?
  683. NTTM_CheckAct();
  684. }
  685. }
  686.  
  687. break;
  688. case ".s1": //vizier
  689.  
  690. if(me.classid == 1 && me.name != leader)
  691. { //Sorc NON LEADER
  692.  
  693. if(me.areaid == 107 && NTC_InMyParty(leader))
  694. {
  695. if(!NTTM_CheckAct())
  696. NTM_UsePortal("BluePortal", 103, leader);
  697. NTC_Delay(1000);
  698. }
  699.  
  700. while(me.areaid == 103 && NTC_InMyParty(leader))
  701. {
  702. if(!NTM_UsePortal("BluePortal", 108, leader))
  703. return "NTM_UsePortal()";
  704. }
  705.  
  706. while(!TD_IsPalaOut())
  707. {
  708. TD_KillMonster(GetLocaleString(2851));
  709.  
  710. if(speed == 1)
  711. NTA_ClearPosition(15);
  712. if(speed == 2)
  713. NTA_ClearPosition(10);
  714.  
  715. NTSI_PickItems();
  716. }
  717.  
  718. if(!NTTM_CheckAct())
  719. NTM_UsePortal("BluePortal", 103, leader);
  720.  
  721. NTP_DoPrecast(true);
  722. NTTM_TownMove("portalspot");
  723. }
  724.  
  725. if(me.classid == 3)
  726. { //Hammerdin
  727.  
  728. if(me.areaid == 107 && NTC_InMyParty(leader))
  729. {
  730. if(!NTTM_CheckAct())
  731. NTM_UsePortal("BluePortal", 103, leader);
  732. NTC_Delay(1000);
  733. }
  734.  
  735. while(me.areaid == 103 && NTC_InMyParty(leader))
  736. {
  737. if(!NTM_UsePortal("BluePortal", 108, leader))
  738. return "NTM_UsePortal()";
  739. }
  740.  
  741. //if(me.name != din || me.name != din2)
  742. //{
  743. //while(!TD_IsPalaOut())
  744. //{
  745. //NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);
  746. //MWR_CheckDeath();
  747. //Delay(500);
  748. //}
  749. //}
  750.  
  751. //if(me.name == din || me.name == din2)
  752. //{
  753. //TD_Preattack(GetLocaleString(2851), 5);
  754. //TD_KillMonster(GetLocaleString(2851));
  755. //NTSI_PickItems();
  756. //}
  757.  
  758. TD_Preattack(GetLocaleString(2851), 5);
  759. TD_KillMonster(GetLocaleString(2851));
  760. NTSI_PickItems();
  761.  
  762. if(!NTTM_CheckAct())
  763. NTM_UsePortal("BluePortal", 103, leader);
  764.  
  765. NTP_DoPrecast(true);
  766. NTTM_TownMove("portalspot");
  767. }
  768.  
  769. if(me.classid == 4)
  770. { //Barb
  771.  
  772. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  773. {
  774. if(!NTM_UsePortal("BluePortal", 108, leader))
  775. NTTM_CheckAct();
  776. NTC_Delay(1000);
  777. }
  778.  
  779. while(me.areaid == 103 && NTC_InMyParty(leader))
  780. {
  781. if(!NTM_UsePortal("BluePortal", 108, leader))
  782. return "NTM_UsePortal()";
  783. }
  784.  
  785. Say("Vizier!");
  786.  
  787. while(!TD_IsPalaOut())
  788. {
  789. NTC_CastSkill(130, NTC_HAND_RIGHT); //howl
  790. Delay(500);
  791. }
  792.  
  793. NTSI_PickItems();
  794.  
  795. if(!NTM_UsePortal("BluePortal", 103, din))
  796. NTTM_CheckAct();
  797.  
  798. }
  799.  
  800. if((me.classid == 0 || me.classid == 2))
  801. { //Leecher
  802.  
  803. if(!TDConfig_Filler)
  804. {
  805. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  806. {
  807. if(!NTM_UsePortal("BluePortal", 108, leader))
  808. NTTM_CheckAct();
  809. NTC_Delay(1000);
  810. }
  811.  
  812. while(me.areaid == 103 && NTC_InMyParty(leader))
  813. {
  814. if(!NTM_UsePortal("BluePortal", 108, leader))
  815. return "NTM_UsePortal()";
  816. }
  817.  
  818. NTP_DoPrecast(true);
  819.  
  820. while(!TD_IsPalaOut())
  821. Delay(500);
  822.  
  823. NTSI_PickItems();
  824.  
  825. if(!NTM_UsePortal("BluePortal", 103, leader))
  826. NTTM_CheckAct();
  827. }
  828. }
  829.  
  830. break;
  831. case ".s2": //de seis
  832.  
  833. if(me.classid == 1 && me.name != leader)
  834. { //Sorc NON LEADER
  835.  
  836. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  837. {
  838. if(!NTM_UsePortal("BluePortal", 108, leader))
  839. NTTM_CheckAct();
  840. Delay(1000);
  841. }
  842.  
  843. while(me.areaid == 103 && NTC_InMyParty(leader))
  844. {
  845. if(!NTM_UsePortal("BluePortal", 108, leader))
  846. return "NTM_UsePortal()";
  847. }
  848.  
  849. while(!TD_IsPalaOut())
  850. {
  851. TD_KillMonster(GetLocaleString(2852));
  852.  
  853. if(speed == 1)
  854. NTA_ClearPosition(10);
  855. if(speed == 2)
  856. NTA_ClearPosition(5);
  857.  
  858. NTSI_PickItems();
  859. }
  860.  
  861. if(!NTTM_CheckAct())
  862. NTM_UsePortal("BluePortal", 103, leader);
  863.  
  864. NTP_DoPrecast(true);
  865. NTTM_TownMove("portalspot");
  866. }
  867.  
  868. if(me.classid == 3)
  869. { //Hammerdin
  870.  
  871. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  872. {
  873. if(!NTM_UsePortal("BluePortal", 108, leader))
  874. NTTM_CheckAct();
  875. Delay(1000);
  876. }
  877.  
  878. while(me.areaid == 103 && NTC_InMyParty(leader))
  879. {
  880. if(!NTM_UsePortal("BluePortal", 108, leader))
  881. return "NTM_UsePortal()";
  882. }
  883.  
  884. TD_Preattack(GetLocaleString(2852), 5);
  885. TD_KillMonster(GetLocaleString(2852));
  886.  
  887. if(speed == 1)
  888. NTA_ClearPosition(10);
  889. if(speed == 2)
  890. NTA_ClearPosition(5);
  891.  
  892. NTSI_PickItems();
  893.  
  894. if(!NTTM_CheckAct())
  895. NTM_UsePortal("BluePortal", 103, leader);
  896.  
  897. NTP_DoPrecast(true);
  898. NTTM_TownMove("portalspot");
  899. }
  900.  
  901. if(me.classid == 4)
  902. { //Barb
  903.  
  904. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  905. {
  906. if(!NTM_UsePortal("BluePortal", 108, leader))
  907. NTTM_CheckAct();
  908. NTC_Delay(1000);
  909. }
  910.  
  911. while(me.areaid == 103 && NTC_InMyParty(leader))
  912. {
  913. if(!NTM_UsePortal("BluePortal", 108, leader))
  914. return "NTM_UsePortal()";
  915. }
  916.  
  917. Say("Seis!");
  918.  
  919. while(!TD_IsPalaOut())
  920. {
  921. NTC_CastSkill(130, NTC_HAND_RIGHT); //howl
  922. Delay(500);
  923. }
  924.  
  925. NTSI_PickItems();
  926. if(!NTM_UsePortal("BluePortal", 103, leader))
  927. NTTM_CheckAct();
  928.  
  929. NTTM_TownMove("portalspot");
  930. }
  931.  
  932. if(me.classid == 0 || me.classid == 2)
  933. { //Leecher
  934.  
  935. if(!TDConfig_Filler)
  936. {
  937. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  938. {
  939. if(!NTM_UsePortal("BluePortal", 108, leader))
  940. NTTM_CheckAct();
  941. NTC_Delay(1000);
  942. }
  943.  
  944. while(me.areaid == 103 && NTC_InMyParty(leader))
  945. {
  946. if(!NTM_UsePortal("BluePortal", 108, leader))
  947. return "NTM_UsePortal()";
  948. }
  949.  
  950. while(!TD_IsPalaOut())
  951. Delay(500);
  952.  
  953. NTSI_PickItems();
  954. if(!NTM_UsePortal("BluePortal", 103, leader))
  955. NTTM_CheckAct();
  956.  
  957. NTTM_TownMove("portalspot");
  958. }
  959. }
  960.  
  961. break;
  962. case ".s3": //infector
  963.  
  964. if(me.classid == 1 && me.name != leader)
  965. { //Sorc NON LEADER
  966.  
  967. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  968. {
  969. if(!NTM_UsePortal("BluePortal", 108, leader))
  970. NTTM_CheckAct();
  971. Delay(1000);
  972. }
  973.  
  974. while(me.areaid == 103 && NTC_InMyParty(leader))
  975. {
  976. if(!NTM_UsePortal("BluePortal", 108, leader))
  977. return "NTM_UsePortal()";
  978. }
  979.  
  980. while(!TD_IsPalaOut())
  981. {
  982. TD_KillMonster(GetLocaleString(2853));
  983.  
  984. if(speed == 1)
  985. NTA_ClearPosition(15);
  986. if(speed == 2)
  987. NTA_ClearPosition(10);
  988.  
  989. NTSI_PickItems();
  990. }
  991.  
  992. if(!NTTM_CheckAct())
  993. NTM_UsePortal("BluePortal", 103, leader);
  994.  
  995. NTP_DoPrecast(true);
  996. NTTM_TownMove("portalspot");
  997. }
  998.  
  999. if(me.classid == 3)
  1000. { //Hammerdin
  1001.  
  1002. if(speed == 4 && me.name == din)
  1003. {
  1004. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1005. {
  1006. if(!NTM_UsePortal("BluePortal", 108, leader))
  1007. NTTM_CheckAct();
  1008. Delay(1000);
  1009. }
  1010.  
  1011. while(me.areaid == 103 && NTC_InMyParty(leader))
  1012. {
  1013. if(!NTM_UsePortal("BluePortal", 108, leader))
  1014. return "NTM_UsePortal()";
  1015. }
  1016.  
  1017. TD_Preattack(GetLocaleString(2853), 5);
  1018. TD_KillMonster(GetLocaleString(2853));
  1019.  
  1020. if(speed == 1)
  1021. NTA_ClearPosition(10);
  1022. if(speed == 2)
  1023. NTA_ClearPosition(5);
  1024.  
  1025. NTSI_PickItems();
  1026.  
  1027. if(!NTTM_CheckAct())
  1028. NTM_UsePortal("BluePortal", 103, leader);
  1029.  
  1030. NTP_DoPrecast(true);
  1031. NTTM_TownMove("portalspot");
  1032. }
  1033.  
  1034. if(speed != 4)
  1035. {
  1036. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1037. {
  1038. if(!NTM_UsePortal("BluePortal", 108, leader))
  1039. NTTM_CheckAct();
  1040. Delay(1000);
  1041. }
  1042.  
  1043. while(me.areaid == 103 && NTC_InMyParty(leader))
  1044. {
  1045. if(!NTM_UsePortal("BluePortal", 108, leader))
  1046. return "NTM_UsePortal()";
  1047. }
  1048.  
  1049. TD_Preattack(GetLocaleString(2853), 5);
  1050. TD_KillMonster(GetLocaleString(2853));
  1051. NTSI_PickItems();
  1052.  
  1053. if(!NTTM_CheckAct())
  1054. NTM_UsePortal("BluePortal", 103, leader);
  1055.  
  1056. NTP_DoPrecast(true);
  1057. NTTM_TownMove("portalspot");
  1058. }
  1059.  
  1060.  
  1061. }
  1062.  
  1063. if(me.classid == 4)
  1064. { //Barb
  1065.  
  1066. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1067. {
  1068. if(!NTM_UsePortal("BluePortal", 108, leader))
  1069. NTTM_CheckAct();
  1070. NTC_Delay(1000);
  1071. }
  1072.  
  1073. while(me.areaid == 103 && NTC_InMyParty(leader))
  1074. {
  1075. if(!NTM_UsePortal("BluePortal", 108, leader))
  1076. return "NTM_UsePortal()";
  1077. }
  1078.  
  1079. Say("Infector!");
  1080.  
  1081. while(!TD_IsPalaOut())
  1082. {
  1083. NTC_CastSkill(130, NTC_HAND_RIGHT); //howl
  1084. Delay(500);
  1085. }
  1086.  
  1087. NTSI_PickItems();
  1088. if(!NTM_UsePortal("BluePortal", 103, leader))
  1089. NTTM_CheckAct();
  1090.  
  1091. NTTM_TownMove("portalspot");
  1092. }
  1093.  
  1094. if(me.classid == 0 || me.classid == 2)
  1095. { //Leecher
  1096.  
  1097. if(!TDConfig_Filler)
  1098. {
  1099. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1100. {
  1101. if(!NTM_UsePortal("BluePortal", 108, leader))
  1102. NTTM_CheckAct();
  1103. NTC_Delay(1000);
  1104. }
  1105.  
  1106. while(me.areaid == 103 && NTC_InMyParty(leader))
  1107. {
  1108. if(!NTM_UsePortal("BluePortal", 108, leader))
  1109. return "NTM_UsePortal()";
  1110. }
  1111.  
  1112. while(!TD_IsPalaOut())
  1113. Delay(500);
  1114.  
  1115. NTSI_PickItems();
  1116. if(!NTM_UsePortal("BluePortal", 103, leader))
  1117. NTTM_CheckAct();
  1118.  
  1119. NTTM_TownMove("portalspot");
  1120. }
  1121. }
  1122.  
  1123. break;
  1124. case ".d":
  1125.  
  1126.  
  1127. if(me.classid == 1 && me.name != leader)
  1128. { //Sorc NON LEADER
  1129.  
  1130. if(TDConfig_KillDiabloCS)
  1131. {
  1132. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1133. {
  1134. if(!NTM_UsePortal("BluePortal", 108, leader))
  1135. NTTM_CheckAct();
  1136. NTC_Delay(1000);
  1137. }
  1138.  
  1139. while(me.areaid == 103 && NTC_InMyParty(leader))
  1140. {
  1141. if(!NTM_UsePortal("BluePortal", 108, leader))
  1142. return "NTM_UsePortal()";
  1143. }
  1144.  
  1145. NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
  1146.  
  1147. if(!TD_KillMonster(243))
  1148. {
  1149. NTC_SendMsgToScript("NTBotGame.ntj", "TD_KillMonster()");
  1150. return;
  1151. }
  1152.  
  1153. NTSI_PickItems();
  1154. }
  1155. }
  1156.  
  1157. if(me.classid == 3)
  1158. { //Hammerdin
  1159.  
  1160. if(TDConfig_KillDiabloCS)
  1161. {
  1162. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1163. {
  1164. if(!NTM_UsePortal("BluePortal", 108, leader))
  1165. NTTM_CheckAct();
  1166. NTC_Delay(1000);
  1167. }
  1168.  
  1169. while(me.areaid == 103 && NTC_InMyParty(leader))
  1170. {
  1171. if(!NTM_UsePortal("BluePortal", 108, leader))
  1172. return "NTM_UsePortal()";
  1173. }
  1174.  
  1175. NTC_FindUnit(NTC_UNIT_MONSTER, 243, 100);
  1176.  
  1177. if(!TD_KillMonster(243))
  1178. {
  1179. NTC_SendMsgToScript("NTBotGame.ntj", "TD_KillMonster()");
  1180. return;
  1181. }
  1182.  
  1183. NTSI_PickItems();
  1184. }
  1185. }
  1186.  
  1187. if(me.classid == 4)
  1188. { //Barb
  1189.  
  1190. if(TDConfig_KillDiabloCS)
  1191. {
  1192. Say("Diablo!");
  1193.  
  1194. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1195. {
  1196. if(!NTM_UsePortal("BluePortal", 108, leader))
  1197. NTTM_CheckAct();
  1198. NTC_Delay(1000);
  1199. }
  1200.  
  1201. while(me.areaid == 103 && NTC_InMyParty(leader))
  1202. {
  1203. if(!NTM_UsePortal("BluePortal", 108, leader))
  1204. return "NTM_UsePortal()";
  1205. }
  1206.  
  1207. NTP_DoPrecast(true);
  1208.  
  1209. var _diablo = NTC_FindUnit(NTC_UNIT_MONSTER, 243)
  1210. while(_diablo && _diablo.hp > 0)
  1211. NTC_Delay(300);
  1212.  
  1213. NTSI_PickItems();
  1214. }
  1215. }
  1216.  
  1217. if(me.classid == 0 || me.classid == 2)
  1218. { //leech
  1219.  
  1220. if(TDConfig_KillDiabloCS)
  1221. {
  1222. Say("Diablo!");
  1223.  
  1224. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1225. {
  1226. if(!NTM_UsePortal("BluePortal", 108, leader))
  1227. NTTM_CheckAct();
  1228. NTC_Delay(1000);
  1229. }
  1230.  
  1231. while(me.areaid == 103 && NTC_InMyParty(leader))
  1232. {
  1233. if(!NTM_UsePortal("BluePortal", 108, leader))
  1234. return "NTM_UsePortal()";
  1235. }
  1236.  
  1237. NTP_DoPrecast(true);
  1238.  
  1239. var _diablo = NTC_FindUnit(NTC_UNIT_MONSTER, 243)
  1240. while(_diablo && _diablo.hp > 0)
  1241. NTC_Delay(400);
  1242.  
  1243. NTSI_PickItems();
  1244. }
  1245. }
  1246.  
  1247. break;
  1248. case ".u": //urdars! and svs!
  1249.  
  1250. if(me.classid == 3)
  1251. { //Hammerdin
  1252.  
  1253. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1254. {
  1255. if(!NTM_UsePortal("BluePortal", 108, leader))
  1256. NTTM_CheckAct();
  1257. Delay(1000);
  1258. }
  1259.  
  1260. while(me.areaid == 103 && NTC_InMyParty(leader))
  1261. {
  1262. if(!NTM_UsePortal("BluePortal", 108, leader))
  1263. return "NTM_UsePortal()";
  1264. }
  1265.  
  1266. if(NTC_FindUnit(NTC_UNIT_MONSTER, 362))
  1267. TD_Preattack(362, 5);
  1268. else if(NTC_FindUnit(NTC_UNIT_MONSTER, 189))
  1269. TD_Preattack(189, 5);
  1270.  
  1271. NTA_ClearPosition(5);
  1272.  
  1273. if(!NTM_UsePortal("BluePortal", 103, leader)) //or make my own?
  1274. NTTM_CheckAct();
  1275.  
  1276. }
  1277.  
  1278. if(me.classid == 4) { //Barb
  1279.  
  1280. Say("Special Unique!");
  1281. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1282. {
  1283. if(!NTM_UsePortal("BluePortal", 108, leader))
  1284. NTTM_CheckAct();
  1285. Delay(1000);
  1286. }
  1287.  
  1288. while(me.areaid == 103 && NTC_InMyParty(leader))
  1289. {
  1290. if(!NTM_UsePortal("BluePortal", 108, leader))
  1291. return "NTM_UsePortal()";
  1292. }
  1293.  
  1294. while(!TD_IsPalaOut())
  1295. Delay(500);
  1296.  
  1297.  
  1298. if(!NTM_UsePortal("BluePortal", 103, leader)) //or make my own?
  1299. NTTM_CheckAct();
  1300. }
  1301.  
  1302. if(me.classid == 0 || me.classid == 2)
  1303. { //zon
  1304.  
  1305. if(!TDConfig_Filler)
  1306. {
  1307. if((me.areaid == 108 || me.areaid == 107) && NTC_InMyParty(leader))
  1308. {
  1309. if(!NTM_UsePortal("BluePortal", 108, leader))
  1310. NTTM_CheckAct();
  1311. Delay(1000);
  1312. }
  1313.  
  1314. while(me.areaid == 103 && NTC_InMyParty(leader))
  1315. {
  1316. if(!NTM_UsePortal("BluePortal", 108, leader))
  1317. return "NTM_UsePortal()";
  1318. }
  1319.  
  1320. while(!TD_IsPalaOut())
  1321. Delay(500);
  1322.  
  1323.  
  1324. if(!NTM_UsePortal("BluePortal", 103, leader)) //or make my own?
  1325. NTTM_CheckAct();
  1326. }
  1327. }
  1328.  
  1329. break;
  1330. }
  1331. }
  1332. }
  1333.  
  1334. function TD_DetectLayout(seal) {
  1335. switch(seal) {
  1336. case 1:
  1337. _sealpos = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
  1338. for(var i = 0 ; i < _sealpos.length ; i++) {
  1339. if(_sealpos[i].id == 396) {
  1340. if(_sealpos[i].roomy*5 + _sealpos[i].y == 5275)
  1341. return 1;
  1342. else
  1343. return 2;
  1344.  
  1345. break;
  1346. }
  1347. }
  1348. break;
  1349. case 2:
  1350. _sealpos = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
  1351. for(i = 0 ; i < _sealpos.length ; i++) {
  1352. if(_sealpos[i].id == 394) {
  1353. if(_sealpos[i].roomx*5 + _sealpos[i].x == 7773)
  1354. return 1;
  1355. else
  1356. return 2;
  1357.  
  1358. break;
  1359. }
  1360. }
  1361. break;
  1362. case 3:
  1363. _sealpos = GetPresetUnits(me.areaid, NTC_UNIT_OBJECT);
  1364. for(i = 0 ; i < _sealpos.length ; i++) {
  1365. if(_sealpos[i].id == 392) {
  1366. if(_sealpos[i].roomx*5 + _sealpos[i].x == 7893)
  1367. return 1;
  1368. else
  1369. return 2;
  1370.  
  1371. break;
  1372. }
  1373. }
  1374. break;
  1375. }
  1376. }
  1377.  
  1378. function MWR_CheckDeath()
  1379. {
  1380. if(me.hp <= 0 || me.mode == 17)
  1381. {
  1382. Print("ÿc1Oh noes, I died! :'(");
  1383. for(var i = 0; i < 8; i++)
  1384. {
  1385. if(i % 4 == 0)
  1386. me.Cancel(0);
  1387.  
  1388. if(me.hp > 0 || NTC_InTown())
  1389. return true;
  1390.  
  1391. NTC_Delay(250);
  1392. }
  1393. }
  1394.  
  1395. return false;
  1396. }
  1397.  
  1398. function TD_IsPlayerOut(area) { //function by Thursty
  1399. var _player;
  1400. var _myPartyId;
  1401.  
  1402. _player = GetPlayerUnit();
  1403. _myPartyId = _player.partyid;
  1404.  
  1405. if(arguments.length < 1)
  1406. _area = me.areaid;
  1407. else
  1408. _area = area;
  1409.  
  1410. do {
  1411. if(_player.areaid == _area && _myPartyId == _player.partyid)
  1412. return false;
  1413.  
  1414. NTC_Delay(100);
  1415.  
  1416. } while(_player.GetNext());
  1417.  
  1418. return true;
  1419. }
  1420.  
  1421. function TD_IsPalaOut(area)
  1422. {
  1423. var _player;
  1424. var _myPartyId;
  1425.  
  1426. _player = GetPlayerUnit();
  1427. _myPartyId = _player.partyid;
  1428.  
  1429. if(arguments.length < 1)
  1430. _area = me.areaid;
  1431. else
  1432. _area = area;
  1433.  
  1434. do
  1435. {
  1436. if(_player.areaid == _area && _myPartyId == _player.partyid && _player.name == din)
  1437. return false;
  1438.  
  1439. NTC_Delay(100);
  1440.  
  1441. } while(_player.GetNext());
  1442.  
  1443. return true;
  1444. }
  1445.  
  1446. function TD_IsPalaOut2(area)
  1447. {
  1448. var _player;
  1449. var _myPartyId;
  1450.  
  1451. _player = GetPlayerUnit();
  1452. _myPartyId = _player.partyid;
  1453.  
  1454. if(arguments.length < 1)
  1455. _area = me.areaid;
  1456. else
  1457. _area = area;
  1458.  
  1459. do
  1460. {
  1461. if(_player.areaid == _area && _myPartyId == _player.partyid && _player.name == din2)
  1462. return false;
  1463.  
  1464. NTC_Delay(100);
  1465.  
  1466. } while(_player.GetNext());
  1467.  
  1468. return true;
  1469. }
  1470.  
  1471. function TD_IsBarbOut(area)
  1472. {
  1473. var _player;
  1474. var _myPartyId;
  1475.  
  1476. _player = GetPlayerUnit();
  1477. _myPartyId = _player.partyid;
  1478.  
  1479. if(arguments.length < 1)
  1480. _area = me.areaid;
  1481. else
  1482. _area = area;
  1483.  
  1484. do
  1485. {
  1486. if(_player.areaid == _area && _myPartyId == _player.partyid && _player.name == barb)
  1487. return false;
  1488.  
  1489. NTC_Delay(100);
  1490.  
  1491. } while(_player.GetNext());
  1492.  
  1493. return true;
  1494. }
  1495.  
  1496. function TD_File(path, mode, msg, delay) { //big thanks to all the koreans out there
  1497. var _msg = "";
  1498. var _line = "";
  1499. var _fileHandle;
  1500. var _isFileCheck = false;
  1501.  
  1502. if (arguments.length < 3) msg = "";
  1503. if (arguments.length < 4) delay = (mode > 0) ? 5 : 2;
  1504.  
  1505. while (delay--) {
  1506. if (mode == 2 && !_isFileCheck) {
  1507. _fileHandle = FileOpen(path, 0);
  1508. if (!_fileHandle)
  1509. _fileHandle = FileOpen(path, 1);
  1510.  
  1511. if (_fileHandle)
  1512. _fileHandle.Close();
  1513.  
  1514. _isFileCheck = true;
  1515. }
  1516.  
  1517. _fileHandle = FileOpen(path, mode);
  1518. if (_fileHandle)
  1519. break;
  1520.  
  1521. if (delay)
  1522. Delay(200);
  1523. }
  1524.  
  1525. if (_fileHandle) {
  1526. if (mode == 0) {
  1527. while (!_fileHandle.eof) {
  1528. _line = _fileHandle.ReadLine();
  1529. if (_line || !_fileHandle.eof)
  1530. _msg += _line + msg;
  1531. }
  1532. }
  1533. else if (msg)
  1534. _fileHandle.WriteLine(msg);
  1535.  
  1536. _fileHandle.Close();
  1537. }
  1538.  
  1539. return _msg;
  1540. }
  1541.  
  1542. function TD_MoveTo(areaid, x, y, retry, clearpath)
  1543. {
  1544. var i, n;
  1545. var _teleport;
  1546. var _path;
  1547. var _retry = 0;
  1548.  
  1549. if(x == me.x && y == me.y)
  1550. return true;
  1551.  
  1552. if(arguments.length < 4)
  1553. retry = 3;
  1554.  
  1555. if(arguments.length < 5)
  1556. clearpath = false;
  1557.  
  1558. if(NTC_InTown() || NTC_GetSkillLevel(54) < 1)
  1559. _teleport = false;
  1560. else
  1561. _teleport = true;
  1562.  
  1563. _path = GetPath(areaid, me.x, me.y, x, y, _teleport);
  1564.  
  1565. if(!_path)
  1566. return false;
  1567.  
  1568. for(i = 0 ; i < _path.length ; i++)
  1569. {
  1570. for(n = 0 ; n < 2 ; n++)
  1571. {
  1572. if(_teleport)
  1573. {
  1574. if(NTM_TeleportTo(_path[i][0], _path[i][1])){
  1575. if(dosv == 1)
  1576.  
  1577. {
  1578. TD_FindUrdar();
  1579.  
  1580.  
  1581.  
  1582. }
  1583.  
  1584. break;
  1585. }
  1586. }
  1587. else
  1588. {
  1589. if(NTM_WalkTo(_path[i][0], _path[i][1]))
  1590. break;
  1591. }
  1592. }
  1593.  
  1594. if(n < 2)
  1595. {
  1596. if(clearpath)
  1597. {
  1598. if(!NTA_ClearPosition(20, true, 2))
  1599. return false;
  1600.  
  1601. NTP_DoPrecast(false);
  1602.  
  1603. NTM_MoveTo(me.areaid, _path[i][0], _path[i][1], 1);
  1604. }
  1605. }
  1606. else if(_retry < retry)
  1607. {
  1608. _path = GetPath(areaid, me.x, me.y, x, y, _teleport);
  1609.  
  1610. if(!_path)
  1611. return false;
  1612.  
  1613. i = -1;
  1614. _retry++;
  1615. }
  1616. else
  1617. return false;
  1618. }
  1619.  
  1620. return true;
  1621. }
  1622.  
  1623. function TD_FindUrdar(){
  1624. //var _urdar = NTC_FindUnit(NTC_UNIT_MONSTER, 189);
  1625. var _sv = NTC_FindUnit(NTC_UNIT_MONSTER, 362);
  1626.  
  1627. //if(_urdar){
  1628. //do{
  1629. //if (_urdar.classid == 189 && (_urdar.spectype == 9 || _urdar.spectype == 17) && _urdar.mode != 0 && _urdar.hp > 0 && _urdar.mode != 12 && _urdar.IsAttackable()){
  1630. //NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿc8Killing Urdars!"); //COMMENT THIS LINE IF TESTING IS SUCCESSFUL
  1631.  
  1632. //NTM_MoveTo(me.areaid, _urdar.x, _urdar.y);
  1633. //TD_Deploy(_urdar.x, _urdar.y, 20, 20, 0, 20);
  1634.  
  1635. //for(var i = 0 ; i < 5 ; i++) {
  1636. //if(NTM_MakeTP())
  1637. //break;
  1638. //}
  1639.  
  1640. //TD_File("NTBot/bots/TeamD.txt", 1, ".u");
  1641.  
  1642. //NTA_ClearPosition(12);
  1643.  
  1644. //while(!TD_IsPlayerOut()) {
  1645. // NTA_ClearPosition();
  1646. // NTSI_PickItems();
  1647. //}
  1648.  
  1649. //TD_File("NTBot/bots/TeamD.txt", 1, "bla");
  1650.  
  1651. //NTC_Delay(250);
  1652. // break;
  1653. // }
  1654. //} while(_urdar.GetNext());
  1655. //}
  1656. //else
  1657.  
  1658. if(_sv){
  1659. do{
  1660. if (_sv.classid == 362 && (_sv.spectype == 9 || _sv.spectype == 17) && _sv.mode != 0 && _sv.hp > 0 && _sv.mode != 12 && _sv.IsAttackable()){
  1661. NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿc8Killing Super Venoms!"); //COMMENT THIS LINE IF TESTING IS SUCCESSFUL
  1662.  
  1663. //NTM_MoveTo(me.areaid, _sv.x, _sv.y);
  1664. TD_Deploy(_sv.x, _sv.y, 20, 20, 0, 20);
  1665.  
  1666.  
  1667. prevx = me.x;
  1668. prevy = me.y;
  1669.  
  1670. for(var i = 0 ; i < 5 ; i++) {
  1671. if(NTM_MakeTP())
  1672. break;
  1673. }
  1674.  
  1675.  
  1676. TD_File("NTBot/bots/TeamD.txt", 1, ".u");
  1677.  
  1678. NTA_ClearPosition(15);
  1679.  
  1680. while(!TD_IsPlayerOut()) {
  1681. NTA_ClearPosition();
  1682. NTSI_PickItems();
  1683. NTM_MoveTo(me.areaid, prevx, prevy);
  1684. }
  1685.  
  1686. TD_File("NTBot/bots/TeamD.txt", 1, "bla");
  1687.  
  1688. NTC_Delay(250);
  1689. break;
  1690. }
  1691. } while(_sv.GetNext());
  1692. }
  1693. }
  1694.  
  1695. function TD_Deploy(x, y, plusx, minusx, plusy, minusy) { //you can build up to 5 positions (x-shaped), center position is x, y; rest are +/- offsets
  1696. var _monster = NTC_FindUnit(NTC_UNIT_MONSTER);
  1697. var num = [0, 0, 0, 0, 0];
  1698. var firstnum = 100;
  1699.  
  1700. if(!_monster)
  1701. return NTM_MoveTo(me.areaid, x, y);
  1702.  
  1703. do {
  1704. if(GetDistance(_monster.x, _monster.y, x, y) <= 15)
  1705. if(_monster.classid != 306)
  1706. num[0]++;
  1707. if(GetDistance(_monster.x, _monster.y, x + plusx, y) <= 15)
  1708. if(_monster.classid != 306)
  1709. num[1]++;
  1710. if(GetDistance(_monster.x, _monster.y, x - minusx, y) <= 15)
  1711. if(_monster.classid != 306)
  1712. num[2]++;
  1713. if(GetDistance(_monster.x, _monster.y, x, y + plusy) <= 15)
  1714. if(_monster.classid != 306)
  1715. num[3]++;
  1716. if(GetDistance(_monster.x, _monster.y, x, y - minusy) <= 15)
  1717. if(_monster.classid != 306)
  1718. num[4]++;
  1719. }while(_monster.GetNext())
  1720.  
  1721. for(var i = 0 ; i < num.length ; i++) {
  1722. //Print("ÿc1" + num[i] + " ÿc:monsters at position ÿc;" + i); //doesn't count storm casters as of v0.8
  1723. if(num[i] < firstnum)
  1724. firstnum = num[i];
  1725. }
  1726.  
  1727. if(firstnum == num[0]) {
  1728. safex = x;
  1729. safey = y;
  1730. NTM_MoveTo(me.areaid, x, y);
  1731. }
  1732. else if(firstnum == num[1]) {
  1733. safex = x + plusx;
  1734. safey = y;
  1735. NTM_MoveTo(me.areaid, x + plusx, y);
  1736. }
  1737. else if(firstnum == num[2]) {
  1738. safex = x - minusx;
  1739. safey = y;
  1740. NTM_MoveTo(me.areaid, x - minusx, y);
  1741. }
  1742. else if(firstnum == num[3]) {
  1743. safex = x;
  1744. safey = y + plusy;
  1745. NTM_MoveTo(me.areaid, x, y + plusy);
  1746. }
  1747. else if(firstnum == num[4]) {
  1748. safex = x;
  1749. safey = y - minusy;
  1750. NTM_MoveTo(me.areaid, x, y - minusy);
  1751. }
  1752. }
  1753.  
  1754. function TD_KillMonster(classid)
  1755. {
  1756. var _target;
  1757.  
  1758. if(NTConfig_AttackSkill[1] < 1)
  1759. return false;
  1760.  
  1761. _target = NTC_FindUnit(NTC_UNIT_MONSTER, classid, 5);
  1762.  
  1763. if(!_target)
  1764. return false;
  1765.  
  1766. if(_target.IsAttackable())
  1767. {
  1768. var _attackcount = 0;
  1769.  
  1770. while(_attackcount < 300 && NTA_IsValidMonster(_target))
  1771. {
  1772. if(NTA_Attack(_target, (_attackcount%30) == 0) < 2)
  1773. break;
  1774.  
  1775. if((_attackcount%10) == 5)
  1776. NTM_MoveTo(me.areaid, _target.x+5, _target.y);
  1777. else if((_attackcount%10) == 0)
  1778. NTM_MoveTo(me.areaid, _target.x, _target.y+5);
  1779.  
  1780. _attackcount++;
  1781. }
  1782. }
  1783.  
  1784. return (_target.hp <= 0 || _target.mode == 0 || _target.mode == 12);
  1785. }
  1786.  
  1787. function Andy()
  1788. {
  1789. if(!NTTM_CheckAct())
  1790. {
  1791. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
  1792. return;
  1793. }
  1794.  
  1795. NTTMGR_TownManager();
  1796.  
  1797. if(!NTTM_TownMove("waypoint"))
  1798. {
  1799. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  1800. return;
  1801. }
  1802.  
  1803. if(!NTM_TakeWaypoint(35))
  1804. {
  1805. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  1806. return;
  1807. }
  1808.  
  1809. NTP_DoPrecast(true);
  1810.  
  1811. for(var i = 0 ; i < 2 ; i++)
  1812. {
  1813. if(!NTM_MoveToStair(me.areaid, 36+i))
  1814. {
  1815. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
  1816. return;
  1817. }
  1818.  
  1819. if(!NTM_TakeStair(36+i))
  1820. {
  1821. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
  1822. return;
  1823. }
  1824. }
  1825.  
  1826. //if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
  1827. //{
  1828. //NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
  1829. //return;
  1830. //}
  1831.  
  1832. if(!NTM_MoveTo(me.areaid, 22532, 9553))
  1833. {
  1834. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
  1835. return;
  1836. }
  1837.  
  1838. if(!NTA_KillMonster(156))
  1839. {
  1840. NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
  1841. return;
  1842. }
  1843.  
  1844. NTC_PingDelay(2000);
  1845.  
  1846. NTSI_PickItems();
  1847.  
  1848. //NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  1849. }
  1850.  
  1851. function Meph()
  1852. {
  1853. if(!NTTM_CheckAct())
  1854. {
  1855. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
  1856. return;
  1857. }
  1858.  
  1859. NTTMGR_TownManager();
  1860.  
  1861. if(!NTTM_TownMove("waypoint"))
  1862. {
  1863. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  1864. return;
  1865. }
  1866.  
  1867. if(!NTM_TakeWaypoint(101))
  1868. {
  1869. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  1870. return;
  1871. }
  1872.  
  1873. NTP_DoPrecast(true);
  1874.  
  1875. if(!NTM_MoveToStair(me.areaid, 102))
  1876. {
  1877. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
  1878. return;
  1879. }
  1880.  
  1881. if(!NTM_TakeStair(102))
  1882. {
  1883. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
  1884. return;
  1885. }
  1886.  
  1887. //if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
  1888. //{
  1889. //NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
  1890. //return;
  1891. //}
  1892.  
  1893. if(!NTM_MoveTo(me.areaid, 17564, 8069))
  1894. {
  1895. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
  1896. return;
  1897. }
  1898.  
  1899. NTC_Delay(200);
  1900.  
  1901. if(me.classid != NTC_CHAR_CLASS_PALADIN && me.classid != NTC_CHAR_CLASS_BARBARIAN)
  1902. NTM_MoveTo(me.areaid, 17573, 8071);
  1903.  
  1904. if(!NTA_KillMonster(242))
  1905. {
  1906. NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
  1907. return;
  1908. }
  1909.  
  1910. if(NTConfig_ClearPosition)
  1911. NTA_ClearPosition();
  1912.  
  1913. NTSI_PickItems();
  1914.  
  1915. //NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  1916. }
Add Comment
Please, Sign In to add comment