Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.88 KB | None | 0 0
  1. RegisterEvent(EVENT_SCRIPTMSG, HostileHandler);
  2. var _hostilepause = false;
  3. var poscount = 1;
  4. var _trapsPreCasted;
  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 _wave;
  13. var _starttick;
  14.  
  15. NT_LoadConfig();
  16. NTSI_LoadNIPFiles("NTBot/item_configs");
  17.  
  18. NTA_Initialize();
  19.  
  20. if(!NTTM_CheckAct()){
  21. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()");
  22. return;
  23. }
  24. NTTMGR_TownManager();
  25. if(!NTTM_TownMove("waypoint")){
  26. NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()");
  27. return;
  28. }
  29. if(!NTM_TakeWaypoint(129)){
  30. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()");
  31. return;
  32. }
  33. NTP_DoPrecast(true);
  34. if(NTConfig_SwitchTele){
  35. NTC_SwapWeapons(1);
  36. }
  37. if(NTConfig_MakeHelpTPBeforeThrone && NTConfig_PublicMode){
  38. if(!NTM_MoveToStair(me.areaid, 130)){
  39. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
  40. return;
  41. }
  42. if(!NTM_TakeStair(130)){
  43. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
  44. return;
  45. }
  46. if(!NTM_MoveToStair(me.areaid, 131)){
  47. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
  48. return;
  49. }
  50. NTM_MakeTP();
  51. Say(Baal_WSlvl3tpMSG);
  52. NTC_Delay(500);
  53. NTP_DoPrecast(true);
  54. if(!NTM_TakeStair(130+i)){
  55. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
  56. return;
  57. }
  58. }
  59. else{
  60. for(i = 0 ; i < 2 ; i++){
  61. if(NTConfig_OpenChestsInArea && NTU_DontOpenAreas()){
  62. OpenChestsInArea();
  63. }
  64. if(!NTM_MoveToStair(me.areaid, 130+i)){
  65. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()");
  66. return;
  67. }
  68. if(!NTM_TakeStair(130+i)){
  69. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
  70. return;
  71. }
  72. }
  73. }
  74. if(!NTM_MoveTo(me.areaid, 15112, 5068))
  75. {
  76. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
  77. return;
  78. }
  79.  
  80. if(NTConfig_Skipdolls) // Add this down from that line above
  81. {
  82. var _dolls;
  83.  
  84. _dolls = NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(2903));
  85.  
  86. if(_dolls)
  87. {
  88. NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  89. NTC_SendLogToOOG(NTC_LOG_COMMON, "ÿE00000Undead Soul Killers found. Exiting Baal");
  90. return true
  91. }
  92. }
  93.  
  94. if(NTConfig_SwitchTele){
  95. NTC_SwapWeapons(0);
  96. }
  97. NTA_ClearPosition(20, true, 2);
  98. if(NTConfig_PublicMode){
  99. NTM_MoveTo(me.areaid, 15116, 5068);
  100. NTC_PingDelay(1000);
  101. NTA_ClearPosition(20, true, 2);
  102. NTM_MoveTo(me.areaid, 15116, 5068);
  103. if(NTConfig_MakeHotTP){
  104. NTM_MakeTP();
  105. Say(Baal_HotTp);
  106. NTC_Delay(500);
  107. NTP_DoPrecast(true);
  108. }
  109. }
  110. NT_ClearThroneInt();
  111. if(NTConfig_PublicMode){
  112. NTM_MoveTo(me.areaid, 15112, 5004, 1, true);
  113. NTM_MakeTP();
  114. Say(Baal_SafeTp);
  115. NTC_Delay(500);
  116. NTP_DoPrecast(true);
  117. }
  118. while(1){
  119. NTM_MoveTo(me.areaid, prewavespot[0], prewavespot[1]);
  120. if(me.GetState(2))
  121. NTC_PutSkill(109, NTC_HAND_RIGHT);
  122. for(i = 0 ; i < 6 ; i++){
  123. _wave = NT_ThroneCheckInt();
  124. if(_wave > 0)
  125. break;
  126. NTC_Delay(500);
  127. }
  128. _starttick = GetTickCount();
  129. while(_wave == 0){
  130. if(!NT_ThronePreAttackInt())
  131. NTC_Delay(200);
  132. if(GetTickCount()-_starttick > 15000){
  133. NT_ClearThroneInt();
  134. _starttick = GetTickCount();
  135. }
  136. _wave = NT_ThroneCheckInt();
  137. }
  138. switch(_wave){
  139. case 1:
  140. NTA_ClearPosition(40, true, 1);
  141. NTP_DoPrecast(true);
  142. break;
  143. case 2:
  144. if(NTConfig_HolyBoltBaal)
  145. if (me.classid == NTC_CHAR_CLASS_PALADIN && NTConfig_AttackSkill[5] == 101)
  146. achmel();
  147. NTA_ClearPosition(40, true, 2);
  148. break;
  149. case 3:
  150. NTA_ClearPosition(40, true, 2);
  151. if(NTConfig_Wave3 > 0){
  152. NT_CheckHydraInt();
  153. }
  154. else
  155. NTC_Delay(3000);
  156. break;
  157. case 4:
  158. NTA_ClearPosition(40, true, 2);
  159. break;
  160. case 5:
  161. NTA_ClearPosition(40, true);
  162. break;
  163. default:
  164. NTA_ClearPosition(40, true, 1);
  165. break;
  166. }
  167. if(_wave != 0) // Need to force a one time cast/wave Assassin only
  168. _trapsPreCasted = false;
  169. if(_wave == 5)
  170. break;
  171. }
  172. if(NTConfig_KillBaal){
  173. var _portal;
  174. if(NTConfig_PublicMode)
  175. Say(Baal_KillBaalMessage);
  176. if(NTConfig_TownBeforeBaal && NTT_CheckInventoryBeforeBaal()){
  177. Delay(1000);
  178. if(NTConfig_PublicMode)
  179. Say(Baal_FreeSpaceMessage);
  180. NTTMGR_VisitTown();
  181. }
  182. if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)){
  183. NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
  184. return;
  185. }
  186. NTM_MoveTo(me.areaid, 15092, 5010);
  187. NTP_DoPrecast(true);
  188. if(NTConfig_SwitchTele){
  189. NTC_SwapWeapons(1);
  190. }
  191. while(NTC_FindUnit(NTC_UNIT_MONSTER, 543))
  192. NTC_Delay(500);
  193. _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 1);
  194. if(!_portal){
  195. NTC_SendMsgToScript("NTBotGame.ntj", "NTC_FindUnit()");
  196. return;
  197. }
  198. if(!NTM_UsePortal("Portal", 132, null, _portal)){
  199. NTC_SendMsgToScript("NTBotGame.ntj", "NTM_UsePortal()");
  200. return;
  201. }
  202. NTM_MoveTo(me.areaid, 15138, 5916);
  203. if(NTConfig_SwitchTele){
  204. NTC_SwapWeapons(0);
  205. }
  206. if(!NTA_KillMonster(544)){
  207. NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
  208. return;
  209. }
  210. NTSI_PickItems();
  211. }
  212. Delay(500);
  213. if(NTConfig_PublicMode)
  214. Say(Baal_NextGameMessage);
  215. Delay(500)
  216. if(Baal_BSayNextGame.length > 0 && NTConfig_PublicMode)
  217. Say(Baal_BSayNextGame + NTC_NextGameSayererer());
  218. Delay(1000);
  219. NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
  220. }
  221.  
  222. // Internal function
  223. function NT_ClearThroneInt(){
  224. var _attackpos = [15112, 5068, 15075, 5065, 15114, 5045, 15114, 5012, 15095, 5024, 15078, 5013, 15092, 5040];
  225. for(var i = 0 ; i < _attackpos.length ; i += 2){
  226. NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);
  227. NTA_ClearPosition(25, true, 2);
  228. }
  229. }
  230.  
  231. function NT_ThroneCheckInt(){
  232. var _monster;
  233. if(!NTC_FindUnit(NTC_UNIT_MONSTER, 543))
  234. return 5;
  235. _monster = NTC_FindUnit(NTC_UNIT_MONSTER);
  236. if(_monster){
  237. do{
  238. if(NTA_IsValidMonster(_monster)){
  239. if(_monster.classid == 23 || _monster.classid == 62)
  240. return 1;
  241. if(_monster.classid == 105 || _monster.classid == 381)
  242. return 2;
  243. if(_monster.classid == 557)
  244. return 3;
  245. if(_monster.classid == 558)
  246. return 4;
  247. if(_monster.classid == 571)
  248. return 5;
  249. }
  250. } while(_monster.GetNext());
  251. }
  252. return 0;
  253. }
  254.  
  255. function NT_ThronePreAttackInt(){
  256. if(me.classid == NTC_CHAR_CLASS_SORCERESS){
  257. if(NTConfig_PreWaveSpam > 0){
  258. if(poscount == 1){
  259. poscount = 2;
  260. return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[0], KBLSpamPos[1]);
  261. }
  262. else if(poscount == 2){
  263. poscount = 3;
  264. return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[2], KBLSpamPos[3]);
  265. }
  266. else{
  267. poscount = 1;
  268. return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[4], KBLSpamPos[5]);
  269. }
  270. }
  271. }
  272. else if(me.classid == NTC_CHAR_CLASS_DRUID){
  273. if(NTConfig_AttackSkill[3] == 245){
  274. return NTC_CastSkill(NTConfig_AttackSkill[3], 2, DruidPreAtt[0], DruidPreAtt[1]);
  275. }
  276. }
  277. else if(me.classid == NTC_CHAR_CLASS_PALADIN){
  278. if(NTConfig_AttackSkill[3] == 112){
  279. NTC_PutSkill(NTConfig_AttackSkill[3], NTC_HAND_LEFT);
  280. NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);
  281. return NTC_CastSkill(NTConfig_AttackSkill[3], 2, 15092, 5028);
  282. }
  283. }
  284. else if(me.classid == NTC_CHAR_CLASS_ASSASSIN){
  285. var _attackPos = [15088,5023,15087,5032,15098,5022,15101,5034,15094,5029];
  286. if(NTConfig_UseTraps && !_trapsPreCasted){
  287. for(var i=0;i<5;i++) {
  288. if(i == 0 || i == 2 || i == 3) // Added delays to prevent trap miscast
  289. NTC_Delay(25);
  290. if(NTConfig_TrapSet[i] > 0)
  291. NTC_CastSkill(NTConfig_TrapSet[i], NTC_HAND_RIGHT, _attackPos[i*2],_attackPos[(i*2)+1]);
  292. }
  293. _trapsPreCasted = true;
  294. }
  295. if(NTConfig_AttackSkill[3] == 256)
  296. if(me.GetSkillStatus(NTConfig_AttackSkill[3]) != 8)
  297. return NTC_CastSkill(NTConfig_AttackSkill[3], 2, 15093, 5030);
  298. }
  299. return false;
  300. }
  301.  
  302. function NT_CheckHydraInt(){
  303. var _hydra1, _hydra2, _hydra3;
  304. _hydra1 = NTC_FindUnit(NTC_UNIT_MONSTER, 351);
  305. _hydra2 = NTC_FindUnit(NTC_UNIT_MONSTER, 352);
  306. _hydra3 = NTC_FindUnit(NTC_UNIT_MONSTER, 353);
  307. if((_hydra1 && _hydra1.GetStat(172) != 2 && _hydra1.GetState(105))
  308. || (_hydra2 && _hydra2.GetStat(172) != 2 && _hydra2.GetState(105))
  309. || (_hydra3 && _hydra3.GetStat(172) != 2 && _hydra3.GetState(105))){
  310. if(NTConfig_Wave3 == 1)
  311. NTM_MoveTo(me.areaid, 15112, 5004); // right side
  312. else if(NTConfig_Wave3 == 2)
  313. NTM_MoveTo(me.areaid, 15073, 5002); // left side
  314. if(me.GetState(2))
  315. NTC_PutSkill(109, NTC_HAND_RIGHT);
  316. NTC_PingDelay(3000);
  317. }
  318. }
  319.  
  320. function achmel(){
  321. var x = 0;
  322. var _holdTargetHp = 0;
  323. NTC_PutSkill(NTConfig_AttackSkill[6], NTC_HAND_RIGHT);
  324. var _achmel = NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(21852));
  325. while (_achmel && _achmel.hp > 0){
  326. _holdTargetHp = _achmel.hp;
  327. for(var i = 0; i < 5 ; i++){
  328. NTC_CastSkill(NTConfig_AttackSkill[5], NTC_HAND_LEFT, _achmel);
  329. }
  330. if(_holdTargetHp <= _achmel.hp && NTConfig_WalkAround) {
  331. x++;
  332. if(x % 2 == 0)
  333. NTM_WalkTo(me.x+10, me.y);
  334. else
  335. NTM_WalkTo(me.x-10, me.y);
  336. }
  337. }
  338. var _company = NTC_FindUnit(NTC_UNIT_MONSTER, 105);
  339. do{
  340. while (_company != null && _company.hp >0 && !_company.GetState(53) && !_company.GetState(96)){
  341. _holdTargetHp = _company.hp;
  342. for(var i = 0; i < 5 ; i++){
  343. NTC_CastSkill(NTConfig_AttackSkill[5], NTC_HAND_LEFT, _company);
  344. }
  345. if(_holdTargetHp <= _company.hp && NTConfig_WalkAround) {
  346. x++;
  347. if(x % 2 == 0)
  348. NTM_WalkTo(me.x+10, me.y);
  349. else
  350. NTM_WalkTo(me.x-10, me.y);
  351. }
  352. }
  353. } while (_company && _company.GetNext());
  354. }
  355.  
  356. function HostileHandler(msg){
  357. if(msg == "pause"){
  358. if(_hostilepause){
  359. Print("ÿc3Resuming...");
  360. _hostilepause = false;
  361. }
  362. else{
  363. Print("ÿc1Pausing to kill hostiles...");
  364. _hostilepause = true;
  365.  
  366. ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null);
  367. ClickMap(NTC_CLICK_RUP, NTC_SHIFT_NONE, null);
  368.  
  369. while(_hostilepause)
  370. NTC_Delay(250);
  371. }
  372. }
  373. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement