rendered paste bodyRegisterEvent(EVENT_SCRIPTMSG, HostileHandler);var _hostilepause = false;var poscount = 1;var _trapsPreCasted;function NTMain(){ Include("libs/common/NTCommon.ntl"); NTC_IncludeLibs(); NTC_IncludeConfig("NTBot/char_configs"); var i; var _wave; var _starttick; NT_LoadConfig(); NTSI_LoadNIPFiles("NTBot/item_configs"); NTA_Initialize(); if(!NTTM_CheckAct()){ NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()"); return; } NTTMGR_TownManager(); if(!NTTM_TownMove("waypoint")){ NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()"); return; } if(!NTM_TakeWaypoint(129)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()"); return; } NTP_DoPrecast(true); if(NTConfig_SwitchTele){ NTC_SwapWeapons(1); } if(NTConfig_MakeHelpTPBeforeThrone && NTConfig_PublicMode){ if(!NTM_MoveToStair(me.areaid, 130)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()"); return; } if(!NTM_TakeStair(130)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()"); return; } if(!NTM_MoveToStair(me.areaid, 131)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()"); return; } NTM_MakeTP(); Say(Baal_WSlvl3tpMSG); NTC_Delay(1000); NTP_DoPrecast(true); if(!NTM_TakeStair(130+i)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()"); return; } } else{ for(i = 0 ; i < 2 ; i++){ if(NTConfig_OpenChestsInArea && NTU_DontOpenAreas()){ OpenChestsInArea(); } if(!NTM_MoveToStair(me.areaid, 130+i)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveToStair()"); return; } if(!NTM_TakeStair(130+i)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()"); return; } } } if(!NTM_MoveTo(me.areaid, 15112, 5068)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()"); return; } if(NTConfig_SwitchTele){ NTC_SwapWeapons(0); } NTM_MoveTo(me.areaid, 15116, 5068); if(NTThrone_Announce) _announceTMobs(); if(NTConfig_MakeHotTP){ NTM_MakeTP(); Say(Baal_HotTp); NTC_Delay(500); NTP_DoPrecast(true); NTA_ClearPosition(20, true, 2); } NTM_MoveTo(me.areaid, 15116, 5068); if(NTConfig_MakeHotTP){ NTM_MakeTP(); Say(Baal_HotTp2); NTC_Delay(500); NTP_DoPrecast(true); } NT_ClearThroneInt(); if(NTConfig_PublicMode){ NTM_MoveTo(me.areaid, 15112, 5004, 1, true); NTM_MakeTP(); Say(Baal_SafeTp); NTC_Delay(500); NTP_DoPrecast(true); } while(1){ NTM_MoveTo(me.areaid, prewavespot[0], prewavespot[1]); if(me.GetState(2)) NTC_PutSkill(109, NTC_HAND_RIGHT); for(i = 0 ; i < 6 ; i++){ _wave = NT_ThroneCheckInt(); if(_wave > 0) break; NTC_Delay(500); } _starttick = GetTickCount(); while(_wave == 0){ if(!NT_ThronePreAttackInt()) NTC_Delay(200); if(GetTickCount()-_starttick > 15000){ NT_ClearThroneInt(); _starttick = GetTickCount(); } _wave = NT_ThroneCheckInt(); } switch(_wave){ case 1: Say(Baal_Wave1); Say(Baal_Wave1Secondary); Say(Baal_Wave1Tertiary); NTA_ClearPosition(40, true, 1); NTP_DoPrecast(true); break; case 2: Say(Baal_Wave2); Say(Baal_Wave2Secondary); Say(Baal_Wave2Tertiary); if(NTConfig_HolyBoltBaal) if (me.classid == NTC_CHAR_CLASS_PALADIN && NTConfig_AttackSkill[5] == 101) achmel(); NTA_ClearPosition(40, true, 2); break; case 3: Say(Baal_Wave3); Say(Baal_Wave3Secondary); Say(Baal_Wave3Tertiary); NTA_ClearPosition(40, true, 2); if(NTConfig_Wave3 > 0){ NT_CheckHydraInt(); } else NTC_Delay(3000); break; case 4: Say(Baal_Wave4); Say(Baal_Wave4Secondary); Say(Baal_Wave4Tertiary); NTA_ClearPosition(40, true, 2); break; case 5: Say(Baal_Wave5); Say(Baal_Wave5Secondary); Say(Baal_Wave5Tertiary); NTA_ClearPosition(40, true); break; default: NTA_ClearPosition(40, true, 1); break; } if(_wave != 0) // Need to force a one time cast/wave Assassin only _trapsPreCasted = false; if(_wave == 5) break; } if(NTConfig_KillBaal){ var _portal; if(NTConfig_PublicMode) Say(Baal_KillBaalMessage); if(NTConfig_TownBeforeBaal && NTT_CheckInventoryBeforeBaal()){ Delay(1000); if(NTConfig_PublicMode) Say(Baal_FreeSpaceMessage); NTTMGR_VisitTown(); } if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()"); return; } NTM_MoveTo(me.areaid, 15092, 5010); NTP_DoPrecast(true); if(NTConfig_SwitchTele){ NTC_SwapWeapons(1); } while(NTC_FindUnit(NTC_UNIT_MONSTER, 543)) NTC_Delay(500); _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 1); if(!_portal){ NTC_SendMsgToScript("NTBotGame.ntj", "NTC_FindUnit()"); return; } if(!NTM_UsePortal("Portal", 132, null, _portal)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTM_UsePortal()"); return; } NTM_MoveTo(me.areaid, 15138, 5916); if(NTConfig_SwitchTele){ NTC_SwapWeapons(0); } if(!NTA_KillMonster(544)){ NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()"); return; } NTSI_PickItems(); } Delay(500); if(NTConfig_PublicMode) Say(Baal_NextGameMessage); Delay(500) if(Baal_BSayNextGame.length > 0 && NTConfig_PublicMode) Say(Baal_BSayNextGame + NTC_NextGameSayererer()); Delay(1000); NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");}// Internal functionfunction NT_ClearThroneInt(){ var _attackpos = [15112, 5068, 15075, 5065, 15114, 5045, 15114, 5012, 15095, 5024, 15078, 5013, 15092, 5040]; for(var i = 0 ; i < _attackpos.length ; i += 2){ NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]); NTA_ClearPosition(25, true, 2); }}function NT_ThroneCheckInt(){ var _monster; if(!NTC_FindUnit(NTC_UNIT_MONSTER, 543)) return 5; _monster = NTC_FindUnit(NTC_UNIT_MONSTER); if(_monster){ do{ if(NTA_IsValidMonster(_monster)){ if(_monster.classid == 23 || _monster.classid == 62) return 1; if(_monster.classid == 105 || _monster.classid == 381) return 2; if(_monster.classid == 557) return 3; if(_monster.classid == 558) return 4; if(_monster.classid == 571) return 5; } } while(_monster.GetNext()); } return 0;}function NT_ThronePreAttackInt(){ if(me.classid == NTC_CHAR_CLASS_SORCERESS){ if(NTConfig_PreWaveSpam > 0){ if(poscount == 1){ poscount = 2; return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[0], KBLSpamPos[1]); } else if(poscount == 2){ poscount = 3; return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[2], KBLSpamPos[3]); } else{ poscount = 1; return NTC_CastSkill(NTConfig_PreWaveSpam, 0, KBLSpamPos[4], KBLSpamPos[5]); } } } else if(me.classid == NTC_CHAR_CLASS_DRUID){ if(NTConfig_AttackSkill[3] == 245){ return NTC_CastSkill(NTConfig_AttackSkill[3], 2, DruidPreAtt[0], DruidPreAtt[1]); } } else if(me.classid == NTC_CHAR_CLASS_PALADIN){ if(NTConfig_AttackSkill[3] == 112){ NTC_PutSkill(NTConfig_AttackSkill[3], NTC_HAND_LEFT); NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT); return NTC_CastSkill(NTConfig_AttackSkill[3], 2, 15092, 5028); } } else if(me.classid == NTC_CHAR_CLASS_ASSASSIN){ var _attackPos = [15088,5023,15087,5032,15098,5022,15101,5034,15094,5029]; if(NTConfig_UseTraps && !_trapsPreCasted){ for(var i=0;i<5;i++) { if(i == 0 || i == 2 || i == 3) // Added delays to prevent trap miscast NTC_Delay(25); if(NTConfig_TrapSet[i] > 0) NTC_CastSkill(NTConfig_TrapSet[i], NTC_HAND_RIGHT, _attackPos[i*2],_attackPos[(i*2)+1]); } _trapsPreCasted = true; } if(NTConfig_AttackSkill[3] == 256) if(me.GetSkillStatus(NTConfig_AttackSkill[3]) != 8) return NTC_CastSkill(NTConfig_AttackSkill[3], 2, 15093, 5030); } return false;}function NT_CheckHydraInt(){ var _hydra1, _hydra2, _hydra3; _hydra1 = NTC_FindUnit(NTC_UNIT_MONSTER, 351); _hydra2 = NTC_FindUnit(NTC_UNIT_MONSTER, 352); _hydra3 = NTC_FindUnit(NTC_UNIT_MONSTER, 353); if((_hydra1 && _hydra1.GetStat(172) != 2 && _hydra1.GetState(105)) || (_hydra2 && _hydra2.GetStat(172) != 2 && _hydra2.GetState(105)) || (_hydra3 && _hydra3.GetStat(172) != 2 && _hydra3.GetState(105))){ if(NTConfig_Wave3 == 1) NTM_MoveTo(me.areaid, 15112, 5004); // right side else if(NTConfig_Wave3 == 2) NTM_MoveTo(me.areaid, 15073, 5002); // left side if(me.GetState(2)) NTC_PutSkill(109, NTC_HAND_RIGHT); NTC_PingDelay(3000); }}function achmel(){ var x = 0; var _holdTargetHp = 0; NTC_PutSkill(NTConfig_AttackSkill[6], NTC_HAND_RIGHT); var _achmel = NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(21852)); while (_achmel && _achmel.hp > 0){ _holdTargetHp = _achmel.hp; for(var i = 0; i < 5 ; i++){ NTC_CastSkill(NTConfig_AttackSkill[5], NTC_HAND_LEFT, _achmel); } if(_holdTargetHp <= _achmel.hp && NTConfig_WalkAround) { x++; if(x % 2 == 0) NTM_WalkTo(me.x+10, me.y); else NTM_WalkTo(me.x-10, me.y); } } var _company = NTC_FindUnit(NTC_UNIT_MONSTER, 105); do{ while (_company != null && _company.hp >0 && !_company.GetState(53) && !_company.GetState(96)){ _holdTargetHp = _company.hp; for(var i = 0; i < 5 ; i++){ NTC_CastSkill(NTConfig_AttackSkill[5], NTC_HAND_LEFT, _company); } if(_holdTargetHp <= _company.hp && NTConfig_WalkAround) { x++; if(x % 2 == 0) NTM_WalkTo(me.x+10, me.y); else NTM_WalkTo(me.x-10, me.y); } } } while (_company && _company.GetNext());}function HostileHandler(msg){ if(msg == "pause"){ if(_hostilepause){ Print("ÿc3Resuming..."); _hostilepause = false; } else{ Print("ÿc1Pausing to kill hostiles..."); _hostilepause = true; ClickMap(NTC_CLICK_LUP, NTC_SHIFT_NONE, null); ClickMap(NTC_CLICK_RUP, NTC_SHIFT_NONE, null); while(_hostilepause) NTC_Delay(250); } }}function _announceTMobs() { var _throneMobs = []; var _count = []; _monster = NTC_FindUnit(NTC_UNIT_MONSTER); if(_monster){ do { if(_outofTBounds(_monster.x, _monster.y)) continue; switch(_monster.classid) { case 120: case 641: case 733: _updateTMobs("Burning Soul"); break; case 215: case 691: _updateTMobs("Undead Soul Killer"); break; case 478: case 637: _updateTMobs("Hell Witch"); break; case 77: case 598: _updateTMobs("Serpent Magus"); break; case 133: case 697: case 731: _updateTMobs("Dark Lord"); break; case 510: _updateTMobs("Blood Lord"); break; case 310: case 699: case 700: _updateTMobs("Doom Knight"); break; case 312: case 701: case 702: case 713: _updateTMobs("Oblivion Knight"); break; case 361: case 687: case 712: _updateTMobs("Pit Lord"); break; case 104: case 669: case 670: _updateTMobs("Horadrim Ancient"); break; case 33: case 603: _updateTMobs("Assailant"); break; default: _updateTMobs("Trash Mob"); break; } } while(_monster.GetNext()) } _sayTMobs(); function _updateTMobs(Tmob) { var _tIndex = _throneMobs.indexOf(Tmob); if(_tIndex == -1) { _throneMobs.push(Tmob); _count.push(1); } else { _count[_tIndex]++; } } function _sayTMobs() { for(var i = 0; i < _throneMobs.length; i++) { Say(_count[i] + " " + (_count[i] == 1 ? _throneMobs[i] : (_throneMobs[i].charAt(_throneMobs[i].length - 1).toLowerCase() == "s" ? _throneMobs[i] + "'s" : (_throneMobs[i].indexOf("Witch") != -1 ? _throneMobs[i] + "es" : _throneMobs[i] + "s")))); Delay(100); } } function _outofTBounds(monX, monY) { if((monX >= 15072 && monX <= 15118 && monY >= 5002 && monY <=5073) || (monX >= 15087 && monX <= 15104 && monY >= 5073 && monY <= 5094)) return false; return true; }}