All pastes #2045354 Raw Edit

NTBaal.ntj

public javascript v1 · immutable
#2045354 ·published 2011-04-12 05:18 UTC
rendered paste body
RegisterEvent(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;	}}