Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.26 KB | None | 0 0
  1. var wave = 0;
  2. var count = 0;
  3. var checker = false;
  4.  
  5. function NTMain()
  6. {
  7. Include("libs/common/NTCommon.ntl");
  8. NTC_IncludeLibs();
  9. NTC_IncludeConfig("NTBot/char_configs");
  10.  
  11. var i;
  12. var _starttick;
  13.  
  14. NT_LoadConfig();
  15. NTSI_LoadNIPFiles("NTBot/item_configs");
  16.  
  17. NTA_Initialize();
  18.  
  19. NTTM_CheckAct()
  20.  
  21. NTTMGR_TownManager();
  22.  
  23. NTTM_TownMove("waypoint")
  24.  
  25. NTM_TakeWaypoint(129)
  26.  
  27. NTP_DoPrecast(true);
  28.  
  29. if(NTConfig_ClearWorldStone1 == 2)
  30. {
  31. NTA_ClearLevel();
  32. NTM_MoveToStair(me.areaid, 130);
  33. NTM_TakeStair(130);
  34. }
  35. else if(NTConfig_ClearWorldStone1 == 1)
  36. {
  37. NTM_MoveToStair(me.areaid, 130, 0, 0, true);
  38. NTM_TakeStair(130);
  39. }
  40. else
  41. {
  42. NTM_MoveToStair(me.areaid, 130);
  43. NTM_TakeStair(130);
  44. }
  45.  
  46. if(NTConfig_ClearWorldStone2 == 2)
  47. {
  48. NTA_ClearLevel();
  49. NTM_MoveToStair(me.areaid, 131);
  50. NTM_TakeStair(131);
  51. }
  52. else if(NTConfig_ClearWorldStone2 == 1)
  53. {
  54. NTM_MoveToStair(me.areaid, 131, 0, 0, true);
  55. NTM_TakeStair(131);
  56. }
  57. else
  58. {
  59. NTM_MoveToStair(me.areaid, 131);
  60. NTM_TakeStair(131);
  61. }
  62.  
  63. NTM_MoveTo(me.areaid, 15112, 5068)
  64.  
  65. NT_CheckDollsAndSouls();
  66.  
  67. if(NTConfig_PublicMode)
  68. {
  69.  
  70. NTM_MoveTo(me.areaid, 15112, 5004);
  71.  
  72. NTA_ClearPosition(30, true, 2);
  73.  
  74. NTM_MoveTo(me.areaid, 15112, 5004);
  75.  
  76. NTM_MakeTP();
  77.  
  78. Say("HOT!");
  79.  
  80. NTA_ClearPosition(30, true, 2);
  81.  
  82. NT_ClearThroneInt();
  83.  
  84. }
  85.  
  86.  
  87. if(NTConfig_PublicMode)
  88. {
  89. Say(NTConfig_TPMsg);
  90.  
  91. }
  92.  
  93. NT_MoveToSpot();
  94.  
  95. while(1)
  96. {
  97.  
  98. if(!NTC_FindUnit(NTC_UNIT_MONSTER, 543))
  99. break;
  100.  
  101. NT_ClearPosition(50, true, 1);
  102.  
  103. if(count > 0)
  104. {
  105. switch(wave)
  106. {
  107. case 0:
  108. NT_MoveToSpot();
  109. break;
  110. case 1:
  111. NTM_MoveTo(me.areaid, 15092, 5028);
  112. NT_ClearPosition(40, true, 1);
  113. NT_MoveToSpot();
  114. NTP_DoPrecast(true);
  115. break;
  116. case 2:
  117. NTM_MoveTo(me.areaid, 15092, 5028);
  118. NT_ClearPosition(40, true, 1);
  119. NT_MoveToSpot();
  120. if(me.GetState(2) && me.classid == NTC_CHAR_CLASS_PALADIN)
  121. {
  122. NTC_PutSkill(109, NTC_HAND_RIGHT);
  123. while(me.GetState(2))
  124. NTC_Delay(200);
  125. }
  126. break;
  127. case 3:
  128. NTM_MoveTo(me.areaid, 15092, 5028);
  129. NT_ClearPosition(40, true, 1);
  130. NTP_DoPrecast(true);
  131. NT_MoveToSpot();
  132. break;
  133. case 4:
  134. NTM_MoveTo(me.areaid, 15092, 5028);
  135. NT_ClearPosition(40, true, 1);
  136. NT_MoveToSpot();
  137. NTP_DoPrecast(true);
  138. break;
  139. case 5:
  140. NTM_MoveTo(me.areaid, 15092, 5028);
  141. NT_ClearPosition(40, true, 1);
  142. break;
  143. }
  144.  
  145. }
  146.  
  147. else
  148. NT_ThronePreAttackInt();
  149.  
  150. count = 0;
  151.  
  152. if(wave == 5)
  153. break;
  154.  
  155. NTC_Delay(25);
  156. }
  157.  
  158. if(NTConfig_KillBaal)
  159. {
  160. var _portal;
  161.  
  162. NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)
  163.  
  164. NTM_MoveTo(me.areaid, 15092, 5010);
  165.  
  166. NTP_DoPrecast(true);
  167.  
  168. if(me.classid == NTC_CHAR_CLASS_PALADIN)
  169. NTC_PutSkill(109, NTC_HAND_RIGHT);
  170.  
  171. while(NTC_FindUnit(NTC_UNIT_MONSTER, 543))
  172. NTC_Delay(500);
  173.  
  174. _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 1);
  175.  
  176. if(!_portal)
  177. {
  178. NTC_SendMsgToScript("NTBotGame.ntj", "NTC_FindUnit()");
  179. return;
  180. }
  181.  
  182. NTM_UsePortal("Portal", 132, null, _portal)
  183.  
  184. NTM_MoveTo(me.areaid, 15138, 5916);
  185.  
  186. NTA_KillMonster(544)
  187.  
  188. NTSI_PickItems();
  189.  
  190. if(NTConfig_PublicMode)
  191. Say("Op Haters_ to follow");
  192.  
  193. }
  194.  
  195. NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  196. }
  197.  
  198. // Internal function
  199. function NT_ClearThroneInt()
  200. {
  201. var _attackpos = [// x y
  202. 15114,5068,
  203. 15115,5051,
  204. 15114,5033,
  205. 15115,5025,
  206. 15101,5020,
  207. 15093,5022,
  208. 15084,5019,
  209. 15082,5028,
  210. 15080,5042,
  211. 15074,5054,
  212. 15074,5065,
  213. 15093,5051,
  214. 15093,5034
  215. ];
  216.  
  217. for(var i = 0 ; i < _attackpos.length ; i += 2)
  218. {
  219. NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
  220.  
  221. NTA_ClearPosition(30, true, 1);
  222. }
  223. }
  224.  
  225. function NT_ThronePreAttackInt()
  226. {
  227. if(me.classid == NTC_CHAR_CLASS_SORCERESS)
  228. {
  229. if(NTConfig_AttackSkill[1] == 59)
  230. return NTC_CastSkill(NTConfig_AttackSkill[1], NTC_HAND_RIGHT, 15092, 5024);
  231. }
  232.  
  233. else if(me.classid == NTC_CHAR_CLASS_PALADIN)
  234. {
  235. if(NTConfig_AttackSkill[3] == 112)
  236. {
  237. if(NTConfig_AttackSkill[4] > 0)
  238. NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);
  239.  
  240. return NTC_CastSkill(NTConfig_AttackSkill[3], 2);
  241. }
  242. }
  243.  
  244. return false;
  245. }
  246.  
  247. function NT_MoveToSpot()
  248. {
  249. if(me.classid == NTC_CHAR_CLASS_BARBARIAN || me.classid == NTC_CHAR_CLASS_PALADIN)
  250. NTM_MoveTo(me.areaid, 15092, 5028);
  251. else
  252. NTM_MoveTo(me.areaid, 15092, 5040);
  253. }
  254.  
  255. function NT_ClearPosition(range, pickitem, safelevel, magicimmunes)
  256. {
  257. var _orgx, _orgy;
  258. var _spectype = [0x0A, 0x01, 0x01];
  259. var _skiplist;
  260. var _attackcount = 0;
  261. var _target;
  262. var _distance, _mingid, _mindistance;
  263. var _result;
  264.  
  265.  
  266. if(NTConfig_AttackSkill[1] < 1 || NTConfig_AttackSkill[3] < 1)
  267. return false;
  268.  
  269. switch(arguments.length)
  270. {
  271. case 0:
  272. range = 20;
  273. case 1:
  274. pickitem = false;
  275. case 2:
  276. safelevel = 0;
  277. case 3:
  278. magicimmunes = false;
  279. default:
  280. if(NTConfig_CheckSelfSafe < 0x01 && NTConfig_CheckMercSafe < 0x01)
  281. safelevel = 0;
  282. break;
  283. }
  284.  
  285. _orgx = me.x;
  286. _orgy = me.y;
  287.  
  288. for(var i = 0 ; i < _spectype.length ; i++)
  289. {
  290. _skiplist = new Array();
  291.  
  292. while(_attackcount < (i+1)*100)
  293. {
  294. _mindistance = 100000;
  295.  
  296. if(magicimmunes)
  297. _target = GetUnit(NTC_UNIT_MONSTER, 105);
  298. else
  299. _target = GetUnit(NTC_UNIT_MONSTER);
  300.  
  301. if(_target)
  302. {
  303. do
  304. {
  305. if(_skiplist.indexOf(_target.gid) < 0)
  306. {
  307.  
  308. if(_target.IsAttackable() && (_target.spectype&_spectype[i]))
  309. {
  310.  
  311. if(GetDistance(_orgx, _orgy, _target.x, _target.y) <= range && NTA_IsValidMonster(_target))
  312. {
  313. _distance = GetDistance(me, _target);
  314.  
  315. if(_distance < _mindistance)
  316. {
  317. _mingid = _target.gid;
  318. _mindistance = _distance;
  319. }
  320. }
  321. }
  322. else
  323. _skiplist.push(_target.gid);
  324. }
  325. } while(_target.GetNext());
  326. }
  327.  
  328. if(_mindistance < 100000)
  329. {
  330. _target = NTC_FindUnit(NTC_UNIT_MONSTER, _mingid);
  331.  
  332. if(_target)
  333. {
  334. count++;
  335. switch(_target.classid)
  336. {
  337.  
  338. case 23:
  339. case 62:
  340. wave = 1;
  341. break;
  342. case 105:
  343. case 381:
  344. wave = 2;
  345. if(me.classid == NTC_CHAR_CLASS_PALADIN && checker == false)
  346. {
  347. checker = true;
  348. return NT_ClearPosition(40, true, 1, true);
  349. }
  350. break;
  351. case 557:
  352. wave = 3;
  353. break;
  354. case 558:
  355. wave = 4;
  356. break;
  357. case 571:
  358. wave = 5;
  359. break;
  360. default:
  361. wave = wave;
  362. break;
  363. }
  364.  
  365. _result = NTA_Attack(_target, (_attackcount%30) == 0);
  366.  
  367. switch(_result)
  368. {
  369. case 1:
  370. _skiplist.push(_mingid);
  371. break;
  372. case 2:
  373. case 3:
  374. _attackcount++;
  375. break;
  376. default:
  377. return false;
  378. }
  379. }
  380. }
  381. else
  382. break;
  383. }
  384. }
  385.  
  386. if(me.classid == NTC_CHAR_CLASS_PALADIN)
  387. if(_attackcount > 2 && (parseInt(me.hp*100/me.hpmax) < NTConfig_UseRedemptionHP || parseInt(me.mp*100/me.mpmax) < NTConfig_UseRedemptionMP))
  388. if(NTC_PutSkill(124, NTC_HAND_RIGHT))
  389. NTC_PingDelay(1000);
  390.  
  391. if(me.classid == NTC_CHAR_CLASS_SORCERESS)
  392. if(_attackcount > 2)
  393. NTC_CastSkill(58, NTC_HAND_RIGHT);
  394.  
  395.  
  396. if(NTConfig_OpenChest)
  397. {
  398. _target = NTC_GetSpecialChest();
  399.  
  400. if(_target && GetDistance(_orgx, _orgy, _target.x, _target.y) >= range && NTC_OpenChest(_target))
  401. _attackcount++;
  402. }
  403.  
  404. if(pickitem && _attackcount > 0)
  405. NTSI_PickItems();
  406.  
  407. switch(safelevel)
  408. {
  409. case 1:
  410. return NTTMGR_CheckSafe(0x00, NTConfig_CheckMercSafe&0x01);
  411. case 2:
  412. return NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe);
  413. }
  414.  
  415. return true;
  416. }
  417.  
  418. var maxdolls = 6;
  419. var maxsouls = 12;
  420.  
  421. function NT_CheckDollsAndSouls()
  422. {
  423. var _monster_array = new Array();
  424. var _monster = NTC_FindUnit(NTC_UNIT_MONSTER);
  425. if(_monster)
  426. {
  427. do
  428. {
  429. if(NTA_IsValidMonster(_monster)
  430. &&
  431. (_monster.classid == 691 // dolls
  432. || _monster.classid == 641 // souls
  433. || _monster.classid == 103 || _monster.classid == 105 || _monster.classid == 670 // horadrim
  434. || _monster.spectype&0x0A // boss
  435. )
  436. )
  437. {
  438. if (_monster.spectype&0x0A)
  439. {
  440. if (_monster.classid == 691) // dolls
  441. {
  442. if (_monster_array["Boss_Dolls"] != undefined)
  443. _monster_array["Boss_Dolls"]++;
  444. else
  445. _monster_array["Boss_Dolls"] = 1;
  446. }
  447. else if (_monster.classid == 641) // souls
  448. {
  449. if (_monster_array["Boss_Souls"] != undefined)
  450. _monster_array["Boss_Souls"]++;
  451. else
  452. _monster_array["Boss_Souls"] = 1;
  453. }
  454. else if (_monster.classid == 103 || _monster.classid == 105 || _monster.classid == 670) // horadrims
  455. {
  456. if (_monster_array["Boss_Horadrim"] != undefined)
  457. _monster_array["Boss_Horadrim"]++;
  458. else
  459. _monster_array["Boss_Horadrim"] = 1;
  460. }
  461. else
  462. {
  463. if (_monster_array["Boss"] != undefined)
  464. _monster_array["Boss"]++;
  465. else
  466. _monster_array["Boss"] = 1;
  467. }
  468. }
  469. else if (_monster.classid == 691)
  470. {
  471. if (_monster_array["Dolls"] != undefined)
  472. _monster_array["Dolls"]++;
  473. else
  474. _monster_array["Dolls"] = 1;
  475. }
  476. else if (_monster.classid == 641)
  477. {
  478. if (_monster_array["Souls"] != undefined)
  479. _monster_array["Souls"]++;
  480. else
  481. _monster_array["Souls"] = 1;
  482. }
  483. else if (_monster.classid == 103 || _monster.classid == 105 || _monster.classid == 670)
  484. {
  485. if (_monster_array["Horadrim"] != undefined)
  486. _monster_array["Horadrim"]++;
  487. else
  488. _monster_array["Horadrim"] = 1;
  489. }
  490. }
  491. else if (NTA_IsValidMonster(_monster))
  492. {
  493. if (_monster_array["Other"] != undefined)
  494. _monster_array["Other"]++;
  495. else
  496. _monster_array["Other"] = 1;
  497. }
  498. } while(_monster.GetNext());
  499.  
  500. var _skip_script = false;
  501. if(
  502. ((_monster_array["Boss_Dolls"] == undefined ? 0 : _monster_array["Boss_Dolls"]) + (_monster_array["Boss_Souls"] == undefined ? 0 : _monster_array["Boss_Souls"]) > 0)
  503. || (_monster_array["Dolls"] == undefined ? 0 : _monster_array["Dolls"]) > maxdolls
  504. || (_monster_array["Souls"] == undefined ? 0 : _monster_array["Souls"]) > maxsouls
  505. )
  506. {
  507. if(
  508. ((_monster_array["Boss_Horadrim"] == undefined ? 0 : _monster_array["Boss_Horadrim"]) > 2)
  509. || ((_monster_array["Horadrim"] == undefined ? 0 : _monster_array["Horadrim"]) > 5)
  510. )
  511. {
  512. _skip_script = true;
  513. }
  514. else if(
  515. ((_monster_array["Boss_Dolls"] == undefined ? 0 : _monster_array["Boss_Dolls"]) > 2)
  516. || ((_monster_array["Dolls"] == undefined ? 0 : _monster_array["Dolls"]) > maxdolls)
  517. )
  518. {
  519. _skip_script = true;
  520. }
  521. else if(
  522. ((_monster_array["Boss_Souls"] == undefined ? 0 : _monster_array["Boss_Souls"]) > 2)
  523. || ((_monster_array["Souls"] == undefined ? 0 : _monster_array["Souls"]) > maxsouls)
  524. )
  525. {
  526. _skip_script = true;
  527. }
  528. else if(
  529. ((_monster_array["Boss"] == undefined ? 0 : _monster_array["Boss"]) > 4)
  530. || ((_monster_array["Other"] == undefined ? 0 : _monster_array["Other"]) > 45)
  531. )
  532. {
  533. _skip_script = true;
  534. }
  535. }
  536.  
  537. if (_skip_script)
  538. {
  539. NTC_SendLogToOOG(0, "ΓΏc1 -- Crazy throne! --");
  540. for(_monster_name in _monster_array)
  541. NTC_SendLogToOOG(0, _monster_array[_monster_name] + " " + _monster_name);
  542. Say("OMFG! Skipped!");
  543. Delay(200);
  544. return false;
  545. }
  546.  
  547. Delay(200);
  548. for(_monster_name in _monster_array)
  549. {
  550. //NTC_SendLogToOOG(0, _monster_array[_monster_name] + " " + _monster_name);
  551. Say(_monster_array[_monster_name] + " " + _monster_name);
  552. Delay(400);
  553. }
  554. }
  555. return true;
  556. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement