All pastes #2045619 Raw Edit

Stuff

public text v1 · immutable
#2045619 ·published 2011-04-12 23:00 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();
	
	RegisterEvent(EVENT_GAMEMSG, NT_GameMsgEvents);

	if(!NTTM_CheckAct()){ 
		NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_CheckAct()"); 
		return; 
	} 	
	if(me.areaid != 109){
		if(!NTTM_TownMove("waypoint")){ 
			NTC_SendMsgToScript("NTBotGame.ntj", "NTTM_TownMove()"); 
			return; 
		} 
		if(!NTM_TakeWaypoint(109)){ 
			NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeWaypoint()"); 
			return; 
		} 
	} 	
	NTTMGR_TownManager();
	NTTM_TownMove("portalspot");	
	for(i = 0; i <= 200; i++){
		if(NTC_InMyParty(_leader))
		break;
		Delay(200);
	}   
	while(me.areaid == 109 && NTC_InMyParty(_leader)){
      Delay(500);     
	}	
	if(me.areaid == 130){	
		Delay(750);
		NTP_DoPrecast(true, NTConfig_LeechBo); 
		if(!NTM_TakeStair(131)){
			NTC_SendMsgToScript("NTBotGame.ntj", "NTM_TakeStair()");
			return;
		}
		if(!NTM_MoveTo(me.areaid, 15112, 5068)){
			NTC_SendMsgToScript("NTBotGame.ntj", "NTM_MoveTo()");
			return;
		}
	}		
	else
		Delay(2000);
		NTP_DoPrecast(true, NTConfig_LeechBo); 
	NT_ClearThroneInt();
	while(1){
		NTM_MoveTo(me.areaid, prewavespot[0], prewavespot[1]); //break; 
		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:
				NTA_ClearPosition(40, true, 1);
				Delay(2000);
				NTP_DoPrecast(true, NTConfig_LeechBo);
				break;
			case 2:
				if(NTConfig_LeechHolyBoltBaal)
					if (me.classid == NTC_CHAR_CLASS_PALADIN && NTConfig_AttackSkill[5] == 101)
						achmel();
				NTA_ClearPosition(40, true, 2);
				break;
			case 3:
				NTA_ClearPosition(40, true, 2);
				if(NTConfig_LeechHydra > 0){
					NT_CheckHydraInt();
				}
				else
					NTC_Delay(3000);
				break;
			case 4:
				NTA_ClearPosition(40, true, 2);
				break;
			case 5:
				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_LeechKillBaal){
		var _portal;
		/*if(NTConfig_TownBeforeBaal && NTT_CheckInventoryBeforeBaal()){ // leaving this in for now..may or may not impliment it			
			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);
		Delay(2000);
		NTP_DoPrecast(true, NTConfig_LeechBo);
		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();
	}
	if(NTConfig_RunScriptAfterBaal)
		NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
	else{
		while(NTC_InMyParty(_leader)){
			Delay(1000); 
		}
		NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
	}
}

// Internal function
function 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_LeechHydra == 1)
			NTM_MoveTo(me.areaid, 15112, 5004); // right side
		else if(NTConfig_LeechHydra == 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_LeechWalkAround) {
			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 NT_GameMsgEvents(msg, type){
	if(type == 0 && msg.indexOf(_fightertp) != -1){
		if(!NTM_UsePortal("BluePortal", 131, _leader))	
			NTM_UsePortal("BluePortal", 130, _leader);
	}
   	else if(type == 4 && msg.indexOf(_leader) != -1) {
		NTC_Delay(750);
		NTC_SendMsgToScript("NTBotGame.ntj", "QuitGame");
	}
}

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);
		}
	}
}