[D2NT] Public Botten for Dummies

10/29/2010 13:43 ditech#421
Quote:
Originally Posted by wolfpack4ever View Post
Weiß denn niemand eine lösung für das problem?
Quote:
Originally Posted by wolfpack4ever View Post
alles klar habe den fehler gefunden und nun funktionier es einwandfrei.

Allerdings habe ich noch eine frage kann man bei den leechbots bzw co-leechbots einstellen das die nur die einladung vom leader annehmen?
mann kann nur einstellen dass sie partys joinen oder dass sie eigene partys aufmachen
10/29/2010 13:51 Knixx#422
mal frage nebenbei :D

hab 2 baal bots laufen jeweils 2 keys
und will noch 2 sorcs jeweils 1 key mf 'en lassen min gametime immer so .....

krig ich viel rd's oder bin ich sicher ?


hab vorher 4 sorcs mit jeweils 1 key 24/7 mf'en lassen ohne rd^^
10/29/2010 14:00 G[oz]U#423
Quote:
Originally Posted by Knixx View Post
mal frage nebenbei :D

hab 2 baal bots laufen jeweils 2 keys
und will noch 2 sorcs jeweils 1 key mf 'en lassen min gametime immer so .....

krig ich viel rd's oder bin ich sicher ?


hab vorher 4 sorcs mit jeweils 1 key 24/7 mf'en lassen ohne rd^^
Wenn jeder Key unter 20Games/Stunde bleibt bzw. geswitched wird, dürfte es keine Probleme geben.

Nimm halt in kauf, dass der Mf Bot nach jedem Run 10-20 Sekunden im Channel steht, als dass du ne ganze Nacht RD hast :)
10/29/2010 15:15 lanara#424
Quote:
Originally Posted by Knixx View Post
1.
würde gern das der pala bevor er unsafe tp macht trotzdem den tp platz cleart :D der knallt bei mir manchmal in 10 souls macht unsave tp ^^ gibs da eine möglichkeit ...
Ale hats glaub in seiner bot version so ... das der unsafe tp platz gecleart wird bevor tp aufgeht :D

2.
würde gern das meine sorc untensteht nicht direkt im platz aber wo normal so die baal party steht ... atm steht sie oben bei baal ... kann man das was ändern ?

3.
wie ändert man die zeit alle wieviels ek der bot /f l schreibt ... weil nach fail join zb brauch die recht lang :D hat der lead meist wave2 dwn kommt die erst weil sie keine grüne message bekommen hat und /f l zulang dauerte


mfg :D
1. Dann mach halt ein NTA_Clearposition() vorm TP erstellen.
2. Position ingame mit *(Num) auslesen und im Script die Werte ändern.
3. In der NTBot.ntj
10/29/2010 16:00 ditech#425
Quote:
Originally Posted by ditech View Post
moin :D

ich finde alles super der bot ich wollte fragen ob jemand weiss wie ich zb.

mein leechfightbot dazu bringen kann das er eishochland geht nur bo macht precastet und dann wieder town kommt ? (empfhelends wert wäre es ohne tp zu casten)

oder dass mein leader normal baal telet

und dann mein leechfightbot nebenbei diafast macht und dann spätestens bei der wave 3 wieder in thron ist würde alles super funken nur der bot geht nur bei fighters may come now rein ..

kann man da nicht was machen das der bot auch nach dem automatisch reingeht sobald er act5 horraght is ?
up
10/29/2010 16:30 DavLad#426
Hi Ich habe ne Sorc und nen Hammerdin die ich mit dem bot laufen lasse

würde jetzt gerne fü+r die baalruns noch gerne ein barb ein schauter dazustellen

der mit Kriegsschrei kämpft ... ist das möglich ?
10/29/2010 16:40 Knixx#427
2. Position ingame mit *(Num) auslesen und im Script die Werte ändern.

da stehen soviel werte könntest mir bitte genauer helfen ;(

Code:
function NTMain()
{
   
   Include("libs/common/NTCommon.ntl");
   NTC_IncludeLibs();
   NTC_IncludeConfig("NTBot/char_configs");

   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 <= 300; i++)
   {
      if(NTC_InMyParty(NTConfig_Leader))
         break;

      Delay(400);
   }

   while(me.areaid == 109 && NTC_InMyParty(NTConfig_Leader))
   {
			if(NTConfig_CoLeechTPMsg == "")
				NTM_UsePortal("BluePortal", 131, NTConfig_Leader); // 50
      Delay(1000);
       
   }
   NTA_ClearPosition(20, true, 2);
   NTP_DoPrecast(true);

   while(NTC_InMyParty(NTConfig_Leader))
   {
   
   NT_ClearThroneInt();

   while(1)
   {
      if(me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN)
         NTM_MoveTo(me.areaid, 15092, 5028);
      else
         NTM_MoveTo(me.areaid, 15089, 5010);

      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, 2); 
         NTP_DoPrecast(true); 
         break; 
      case 2: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true); 
         NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe); 
         break; 
      case 3: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         NTSI_PickItems();
         //NT_CheckHydraInt(); 
         break; 
      case 4: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break; 
      case 5: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break;
      default:
         NTA_ClearPosition(40, true, 1);
         break;
      }

      if(_wave == 5)
         break;
   }

   if(NTConfig_KillBaal)
   {
      var _portal;

      if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
      {
         NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
         return;
      }

      NTM_MoveTo(me.areaid, 15092, 5010);

      NTP_DoPrecast(true);

      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);
			NTA_Initialize()
			
      if(!NTA_KillMonster(544))
      {
         NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
         return;
      }

      NTSI_PickItems();
   }

   }

   NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");

}


// Internal function
function NT_ClearThroneInt()
{
	var _attackpos = [15083, 5014, 15092, 5028, 15107, 5059, 15081, 5056, 15095, 5067];

	for(var i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(30, true, 2);
	}
	NTM_MoveTo(me.areaid, 15093, 5041);
	NTA_ClearPosition(50, 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_AttackSkill[3] == 56 || NTConfig_AttackSkill[3] == 59)
			return NTC_CastSkill(NTConfig_AttackSkill[3], 0, 15092, 5028);
	}
	else if(me.classid == NTC_CHAR_CLASS_PALADIN)
	{
		if(NTConfig_AttackSkill[3] == 112)
		{
			if(NTConfig_AttackSkill[4] > 0)
				NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);

			return NTC_CastSkill(NTConfig_AttackSkill[3], 2);
		}
	}
	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)))
	{
		NTM_MoveTo(me.areaid, 15118, 5002);

		if(me.GetState(2))
			NTC_PutSkill(109, NTC_HAND_RIGHT);

		NTC_PingDelay(5000);
	}
}

function NT_GameMsgEvents(msg, type)
{
	if(type == 0 && msg.indexOf(NTConfig_Leader) != -1 && msg.indexOf(NTConfig_CoLeechTPMsg) != -1 && NTConfig_CoLeechTPMsg != "")
	{
		while(me.areaid == 109)
		{
			NTM_UsePortal("BluePortal", 131, NTConfig_Leader);	
		}
	}
}
die position wär diese

[Only registered and activated users can see links. Click Here To Register...]

beim pala kamm das bei raus ;(

[Only registered and activated users can see links. Click Here To Register...]

Code:
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_Teleport)
		{
		NTC_SwapWeapons(1)
		}
	for(i = 0 ; i < 2 ; i++)
	{
		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_UnsafeTP)
   {
      NTM_MoveTo(me.areaid, 15113, 5002);
      
			if(NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(2904)) && NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(3070)))
				Say("Dolls and Souls out, take care!");
			else
			{
				if(NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(2904)))
					Say("Dolls out, take care!");
				if(NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(3070)))
					Say("Souls out, take care!");
			}
      NTC_PingDelay(500);
      NTM_MakeTP();
      Say(NTConfig_UNSAFETPSpoke);
   }
   NTA_ClearPosition(30, true, 2);



   NT_ClearThroneInt();
	 if(!NTConfig_UnsafeTP)
	 {
			NTM_MoveTo(me.areaid, 15113, 5006);
      NTC_PingDelay(500);
      NTM_MakeTP();
   }
   Say(NTConfig_SafeTP);

   while(1)
   {
      if(me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN)
         NTM_MoveTo(me.areaid, 15092, 5028);
      else
         NTM_MoveTo(me.areaid, 15089, 5010);

      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, 2); 
         NTP_DoPrecast(true); 
         break; 
      case 2: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true); 
         NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe); 
         break; 
      case 3: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         NTSI_PickItems();
         //NT_CheckHydraInt(); 
         break; 
      case 4: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break; 
      case 5: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break;
      default:
         NTA_ClearPosition(40, true, 1);
         break;
      }

      if(_wave == 5)
         break;
   }

   if(NTConfig_KillBaal)
   {
      var _portal;
      Say(NTConfig_KILL);

      if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
      {
         NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
         return;
      }

      NTM_MoveTo(me.areaid, 15092, 5010);

      NTP_DoPrecast(true);

      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);
			NTA_Initialize()
			
      if(!NTA_KillMonster(544))
      {
         NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
         return;
      }

      NTSI_PickItems();
   }

   Say(NTConfig_NxtGame)

   NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}

// Internal function
function NT_ClearThroneInt()
{
	var _attackpos = [15083, 5014, 15092, 5028, 15107, 5059, 15081, 5056, 15095, 5067];

	for(var i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(30, true, 2);
	}
	NTM_MoveTo(me.areaid, 15093, 5041);
	NTA_ClearPosition(50, 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_AttackSkill[3] == 56 || NTConfig_AttackSkill[3] == 59)
			return NTC_CastSkill(NTConfig_AttackSkill[3], 0, 15092, 5028);
	}
	else if(me.classid == NTC_CHAR_CLASS_PALADIN)
	{
		if(NTConfig_AttackSkill[3] == 112)
		{
			if(NTConfig_AttackSkill[4] > 0)
				NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);

			return NTC_CastSkill(NTConfig_AttackSkill[3], 2);
		}
	}
	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)))
	{
		NTM_MoveTo(me.areaid, 15118, 5002);

		if(me.GetState(2))
			NTC_PutSkill(109, NTC_HAND_RIGHT);

		NTC_PingDelay(5000);
	}
}
10/29/2010 17:29 wolfpack4ever#428
Kann man einstellen das der leader die leute schneller zur "pp" einläd?
10/29/2010 18:07 lanara#429
Code:
 if(me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN)
         NTM_MoveTo(me.areaid, 15092, 5028);
      else
         NTM_MoveTo(me.areaid, [COLOR="Red"]15089[/COLOR], [COLOR="Red"]5010[/COLOR]);
10/29/2010 18:31 ditech#430
keiner hatt ne lösung für mich ?
10/29/2010 19:26 xRincewindx#431
Ich hab den Bot so eingestellt, wie im ersten Post beschrieben, bis auf eine Sache, wenn ich das Feld für "Room" leer lassen will, quittiert er mir das mit einer Fehlermeldung.

Wenn ich dann in den Feld allerding etwas eintrage bzw. den Haken bei "Random" setze, dann postet er den Spielnamen jeweils im Channel.
Wie kann ich das vermeiden?

Danke

Rince
10/29/2010 20:20 Knixx#432
Code:
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_Teleport)
		{
		NTC_SwapWeapons(1)
		}
	for(i = 0 ; i < 2 ; i++)
	{
		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_UnsafeTP)
   {
      NTM_MoveTo(me.areaid, 15113, 5002);
      
			if(NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(2904)) && NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(3070)))
				Say("Dolls and Souls out, take care!");
			else
			{
				if(NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(2904)))
					Say("Dolls out, take care!");
				if(NTC_FindUnit(NTC_UNIT_MONSTER, GetLocaleString(3070)))
					Say("Souls out, take care!");
			}
      NTC_PingDelay(500);
      [COLOR="Red"]NTA_Clearposition()[/COLOR]
      NTM_MakeTP();
      Say(NTConfig_UNSAFETPSpoke);
   }
   NTA_ClearPosition(30, true, 2);



   NT_ClearThroneInt();
	 if(!NTConfig_UnsafeTP)
	 {
			NTM_MoveTo(me.areaid, 15113, 5006);
      NTC_PingDelay(500);
      NTM_MakeTP();
   }
   Say(NTConfig_SafeTP);

   while(1)
   {
      if(me.classid == NTC_CHAR_CLASS_PALADIN || me.classid == NTC_CHAR_CLASS_BARBARIAN)
         NTM_MoveTo(me.areaid, 15092, 5028);
      else
         NTM_MoveTo(me.areaid, 15089, 5010);

      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, 2); 
         NTP_DoPrecast(true); 
         break; 
      case 2: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true); 
         NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe); 
         break; 
      case 3: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         NTSI_PickItems();
         //NT_CheckHydraInt(); 
         break; 
      case 4: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break; 
      case 5: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         break;
      default:
         NTA_ClearPosition(40, true, 1);
         break;
      }

      if(_wave == 5)
         break;
   }

   if(NTConfig_KillBaal)
   {
      var _portal;
      Say(NTConfig_KILL);

      if(!NTTMGR_CheckSafe(NTConfig_CheckSelfSafe, NTConfig_CheckMercSafe))
      {
         NTC_SendMsgToScript("NTBotGame.ntj", "NTTMGR_CheckSafe()");
         return;
      }

      NTM_MoveTo(me.areaid, 15092, 5010);

      NTP_DoPrecast(true);

      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);
			NTA_Initialize()
			
      if(!NTA_KillMonster(544))
      {
         NTC_SendMsgToScript("NTBotGame.ntj", "NTA_KillMonster()");
         return;
      }

      NTSI_PickItems();
   }

   Say(NTConfig_NxtGame)

   NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
}

// Internal function
function NT_ClearThroneInt()
{
	var _attackpos = [15083, 5014, 15092, 5028, 15107, 5059, 15081, 5056, 15095, 5067];

	for(var i = 0 ; i < _attackpos.length ; i += 2)
	{
		NTM_MoveTo(me.areaid, _attackpos[i], _attackpos[i+1]);

		NTA_ClearPosition(30, true, 2);
	}
	NTM_MoveTo(me.areaid, 15093, 5041);
	NTA_ClearPosition(50, 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_AttackSkill[3] == 56 || NTConfig_AttackSkill[3] == 59)
			return NTC_CastSkill(NTConfig_AttackSkill[3], 0, 15092, 5028);
	}
	else if(me.classid == NTC_CHAR_CLASS_PALADIN)
	{
		if(NTConfig_AttackSkill[3] == 112)
		{
			if(NTConfig_AttackSkill[4] > 0)
				NTC_PutSkill(NTConfig_AttackSkill[4], NTC_HAND_RIGHT);

			return NTC_CastSkill(NTConfig_AttackSkill[3], 2);
		}
	}
	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)))
	{
		NTM_MoveTo(me.areaid, 15118, 5002);

		if(me.GetState(2))
			NTC_PutSkill(109, NTC_HAND_RIGHT);

		NTC_PingDelay(5000);
	}
}
hab da rote reingemacht wie du sagtest vorm tp aber das ergibt nen error :D

wolt halt das er vorm tp flot die tp stelle abcleart :D

posie wo das portal steht is immer

x: 15111 | y: 5006 Area 131-
10/29/2010 20:29 G[oz]U#433
Keine Ahunung, ob schonmal jemand gefragt hat, aber bin jetzt nich so scharf drauf den Thread danach zu durchforsten..
Nach 99 Runs fängt der Bot wieder bei -00 an zu zählen.
Kann man das ändern, sodass es mit -100 weitergeht?

Grüße :)
10/29/2010 22:51 lanara#434
Quote:
Originally Posted by ditech View Post
keiner hatt ne lösung für mich ?
1. Natürlich kann man das machen, aber ich habe im Moment keine Zeit dafür.
2. Lösch einfach den Text bei dem er joinen soll, dann joined er immer sobald ein TP da ist.
Quote:
Originally Posted by xRincewindx View Post
Ich hab den Bot so eingestellt, wie im ersten Post beschrieben, bis auf eine Sache, wenn ich das Feld für "Room" leer lassen will, quittiert er mir das mit einer Fehlermeldung.

Wenn ich dann in den Feld allerding etwas eintrage bzw. den Haken bei "Random" setze, dann postet er den Spielnamen jeweils im Channel.
Wie kann ich das vermeiden?

Danke

Rince
Das ist auch so gewollt, da der Bot auf diese weise die Spiele zählt um auch beim Leecher einen Keywechsel zu ermöglichen. Nenn dein Spiel einfach "100", dann schreibt er ein paar Rechenaufgaben in den Chat. :P Davon abgesehn ist es doch sowieso Wurst ob der irgendwas in den Chat schreibt, schick ihn halt in einen Random Channel wo keiner ist.
Quote:
Originally Posted by Knixx View Post
hab da rote reingemacht wie du sagtest vorm tp aber das ergibt nen error :D

wolt halt das er vorm tp flot die tp stelle abcleart :D

posie wo das portal steht is immer

x: 15111 | y: 5006 Area 131-
Bisschen mitdenken bitte. Die Funktion gibts zig mal in dem Script und auch ohne große Ahnung vom Programmieren sollte man es schon hinbekommen den Fehler zu entdecken. Und ich habe auch weder Zeit, noch Motivation jedem seine Sonderwünsche zu erfüllen.
Quote:
Originally Posted by G[oz]U View Post
Keine Ahunung, ob schonmal jemand gefragt hat, aber bin jetzt nich so scharf drauf den Thread danach zu durchforsten..
Nach 99 Runs fängt der Bot wieder bei -00 an zu zählen.
Kann man das ändern, sodass es mit -100 weitergeht?

Grüße :)
Das ist beim D2NT leider hardcoded und kann nicht geändert werden. :(
10/30/2010 09:50 DavLad#435
Blöde frage aber was ist der enigma bug ?

und vorallem der enigma bug bei einer sorc?