[D2NT] Public Botten for Dummies

08/18/2010 20:27 theEye321123#31
versuchs mal hiermit :)

das sollte verhindern dass der bot in die while schleife kommt wenn der pala schon bei baal ist sprich wenn der leecher rejoint und der leader schon beim baalen ist überspringt er das diascript

Code:
 ----- doofe simple lösungen -----
E: habs nochnicht ausprobiert mach ich aber gleich ^^
E2: also das script scheit zu klappen, allerdings werd ich noch ein wenig dran feilen denn: der leader startet ja in a5 und sobald der leecher joint und der leader ist noch am potskaufen etc springt er sofort zum baalscript (was ja net sinn der sache ist :D)
08/18/2010 20:30 7daysjust#32
hab noch eine frage :)

wie kann das sein das mein bot sein cta zum attacken benutzt ?!
er hat dauernd chickens^^
08/18/2010 20:56 Muddy Waters#33
Quote:
Originally Posted by 7daysjust View Post
hab noch eine frage :)

wie kann das sein das mein bot sein cta zum attacken benutzt ?!
er hat dauernd chickens^^
Ich weiss nicht, inwieweit das ganze tatsächlich auf meiner D2NT Version basiert.

Falls es das aber gerade in dem Punkt tut, könnte ein Teil drin sein, derdafür sorgt, dass bei jedem Stadtbesuch auf Slot I gewechselt wird. Dies dient in erster Linie dazu, sicherzustellen, dass ein Goldbarb nicht mit seinem Plünder Slot angreift.

Stell einfach mal sicher, dass dein CTA im Slot II ist und nicht in Slot I, eventuell behebt das das Problem schon. ;)

Lg
Muddy
08/18/2010 21:06 lanara#34
Quote:
Originally Posted by theEye321123 View Post
versuchs mal hiermit :)

das sollte verhindern dass der bot in die while schleife kommt wenn der pala schon bei baal ist sprich wenn der leecher rejoint und der leader schon beim baalen ist überspringt er das diascript

E: habs nochnicht ausprobiert mach ich aber gleich ^^
E2: also das script scheit zu klappen, allerdings werd ich noch ein wenig dran feilen denn: der leader startet ja in a5 und sobald der leecher joint und der leader ist noch am potskaufen etc springt er sofort zum baalscript (was ja net sinn der sache ist :D)
Ein if leader.area >= 129 tuts auch. :P
Quote:
Originally Posted by Muddy_Waters View Post
Ich weiss nicht, inwieweit das ganze tatsächlich auf meiner D2NT Version basiert.

Falls es das aber gerade in dem Punkt tut, könnte ein Teil drin sein, derdafür sorgt, dass bei jedem Stadtbesuch auf Slot I gewechselt wird. Dies dient in erster Linie dazu, sicherzustellen, dass ein Goldbarb nicht mit seinem Plünder Slot angreift.

Stell einfach mal sicher, dass dein CTA im Slot II ist und nicht in Slot I, eventuell behebt das das Problem schon. ;)

Lg
Muddy
Habe von dir nur das Channel Announcement Script drin, siehe Link bei den Credits, aber da ich den ganzen Teil aus den libs von Sternenloopers 3.8 habe, ist es gut möglich, dass da auch was von dir mit dabei ist. :)
08/18/2010 21:17 theEye321123#35
stimmt xD oh man warum fallen mir so simple sachen nie auf :/
scheiße da
08/19/2010 13:50 MeTzeLMeisTa#36
Saubere Arbeit, sehr gut erklärt und der Bot läuft gut, Danke :)
hätte aber dennoch ein paar Fragen..
1.Mein Bot schreibt im Channel nxt game in xx Sekunden obwohl min game time erreicht ist.. ne idee warum? Nach den xx Sekunden geht er dann ins nexte ohne es im CHannel zu melden
2.Bei Baals Dienern also nach Welle 3 telt er in die Ecke um den Hydras zu entkommen.
Kann mir bitte jemand sagen ob und wenn ja wie sich das ändern lässt?
08/19/2010 16:12 lanara#37
Quote:
Originally Posted by MeTzeLMeisTa View Post
Saubere Arbeit, sehr gut erklärt und der Bot läuft gut, Danke :)
hätte aber dennoch ein paar Fragen..
1.Mein Bot schreibt im Channel nxt game in xx Sekunden obwohl min game time erreicht ist.. ne idee warum? Nach den xx Sekunden geht er dann ins nexte ohne es im CHannel zu melden
2.Bei Baals Dienern also nach Welle 3 telt er in die Ecke um den Hydras zu entkommen.
Kann mir bitte jemand sagen ob und wenn ja wie sich das ändern lässt?
1. Wie lang ist denn xx Sekunden bei dir? Der Bot hat eine Wartezeit, bis er das nächste Spiel aufmacht, da es auch zu Tempbans kommen kann, wenn man zu schnell Spiele erstellt. Wenn es dir zu lange dauert, kannste auch die folgenden Werte in der NTBot.ntj niedriger setzen:

Code:
var createGameThreshold        = 10000;
var createGameThresholdRandom  = 2500;
Zurzeit wartet er also zwischen 7.5 und 12.5sec, bis er das nächste Spiel erstellt. Ursprünglich war es auf 15000, habe es also schon um 5 Sekunden gesenkt. Und zu deiner 2. Frage, da musst du einfach das rot markierte in der NTBaal.ntj mit // auskommentieren.

Code:
      case 3: 
         NTM_MoveTo(me.areaid, me.x, me.y-1); 
         NTA_ClearPosition(40, true, 2); 
         NTSI_PickItems();
         [COLOR="Red"]NT_CheckHydraInt(); [/COLOR]
         break;
08/19/2010 18:02 Devil122#38
Nice work!
08/19/2010 21:45 MeTzeLMeisTa#39
Vielen Dank für die schnelle Antwort :)
Ja die xx Seks waren so um die 10 jetzt nurnoch ~5 :)
08/19/2010 22:10 jeanschris#40
läuft richtig geil

big thanks man
08/19/2010 23:15 theEye321123#41
hey
also mein diamitlaufen script klappt mittlerweile fast perfekt :)
und das baalleech script hab ich so angepasst, dass auch nicht eni chars zu baal kommen
bei interesse kann ich dir ersteres schicken das für baal poste ich einfach mal ;)

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

   NT_LoadConfig();
   NTSI_LoadNIPFiles("NTBot/item_configs");

   NTA_Initialize(); // 10

   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(NTConfig_Leader))
         break;

      Delay(200);
   }   

	if(!NTC_InMyParty(NTConfig_Leader))
		NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
   
   while(me.areaid == 109 && NTC_InMyParty(NTConfig_Leader))
   {
      NTM_UsePortal("BluePortal", 131, NTConfig_Leader); // 50
      Delay(2000);
      
   }
  
	var	_path = GetPath(me.areaid, me.x, me.y, 15113, 5059, false);
	if(_path)
	{
		for(var i = 0; i < _path.length; i++)
		{
		NTM_WalkTo(_path[i][0], _path[i][1]);
		}
	} 

   NTP_DoPrecast(true);
   
   
if(!NTConfig_EniLeecher)
	{
	var _leader = MW_GetPlayerUnit2(NTConfig_Leader);

	while(_leader.areaid!=132)
		{
		if(!NTC_InMyParty(NTConfig_Leader))
			NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
 		Delay(750);
		_leader = MW_GetPlayerUnit2(NTConfig_Leader);
		if(_leader==null)
			NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
		}
		
	_path = GetPath(me.areaid, me.x, me.y, 15089, 5006, false);
	if(_path)
	{
		for(var i = 0; i < _path.length; i++)
		{
		NTM_WalkTo(_path[i][0], _path[i][1]);
		}
	} 
    
    _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 1);

    if(!_portal)
    {
        NTC_SendMsgToScript("NTBotGame.ntj", "NTC_FindUnit()");
		return;
    }

	MW_UsePortal("Portal", 132, null, _portal);
	
	_path = GetPath(me.areaid, me.x, me.y, 15138, 5916, false);
	if(_path)
	{
		for(var i = 0; i < _path.length; i++)
		{
		NTM_WalkTo(_path[i][0], _path[i][1]);
		}
	} 
 
	var _baal = NTC_FindUnit(NTC_UNIT_MONSTER, 544);
    
    while(NTC_InMyParty(NTConfig_Leader) && NTA_IsValidMonster(_baal))
        Delay(2500);

    Delay(2000);
    
    NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
	
	}
 
   if(NTConfig_EniLeecher)
   {
       while(NTC_InMyParty(NTConfig_Leader) && NTC_FindUnit(NTC_UNIT_MONSTER, 543))
        Delay(5000);
       
      var _portal = NTC_FindUnit(NTC_UNIT_OBJECT, 563, 2);

    if(!_portal)
    {
        NTC_SendMsgToScript("NTBotGame.ntj", "NTC_FindUnit()");
        return;
    }

    if(!MW_UsePortal("Portal", 132, null, _portal))
    {
        NTC_SendMsgToScript("NTBotGame.ntj", "MW_UsePortal()");
        return;
    }
    
    var _baal = NTC_FindUnit(NTC_UNIT_MONSTER, 544);
    
    while(NTC_InMyParty(NTConfig_Leader) && NTA_IsValidMonster(_baal))
        Delay(2500);

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

	else
	{
   while(NTC_InMyParty(NTConfig_Leader))
	{
      Delay(1000);
	}
	NTC_SendMsgToScript("NTBotGame.ntj", "SCRIPT_END");
	}
}


function MW_GetPlayerUnit2(leaderName)
{
    var _player;
    
    if(arguments.length < 1 || !leaderName)
        return null;
    
    _player = GetPlayerUnit();

    if(_player)
    {
        while(_player.GetNext())
        {
            if(_player.name.toLowerCase() == leaderName.toLowerCase())
                return _player;
        }
    }
   
    return null;
}

function MW_UsePortal(how, dest, ownername, portal)
{
	if(me.areaid == dest)
		return true;

	if(NTC_InTown())
		me.Cancel(1);

	if(MW_ChangeAreaInt(how, dest, ownername, portal))
	{
		NTC_PingDelay(NTConfig_AreaDelay);
		return true;
	}

	return false;
}

function MW_ChangeAreaInt(how, dest, ownername, myportal)
{
	var _portal;
	var _playerportal = false;
	var _prearea;

	if(how == "BluePortal")
	{
		if(!ownername)
			ownername = me.name;

		_playerportal = true;
	}

	if(arguments.length > 3 && myportal)
		_portal = myportal;
	else
	{
		_portal = NTM_FindCorrectPortalInt(_playerportal, ownername);

		if(_portal < 0)
			_portal = NTM_FindPortalAreaInt(dest);

		if(_portal == -1)
			return false;
	}

	if(!_portal)
		return false;

	_prearea = me.areaid;

	for(var i = 0 ; i < 20 ; i++)
	{
		if((i % 5) == 0)
		{
			NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);
			Delay(200);
			if(i == 10)
				NTM_WalkTo(_prearea, me.x-1, me.y-1);

			if(MW_GetCloserInt(_portal))
				NTC_DoClick(NTC_CLICK_LDOWN, NTC_SHIFT_NONE, _portal);
		}

		NTC_Delay(200);

		if(me.areaid != _prearea)
			break;
	}

	while(me.areaid == 0)
		NTC_Delay(200);

	return (me.areaid == dest);
}


function MW_GetCloserInt(unit)
{
	if(GetDistance(me, unit) > 1)
		return NTM_WalkTo(unit.areaid, unit.x+1, unit.y);

	return true;
}
08/19/2010 23:17 MeTzeLMeisTa#42
Hab eben gesehen das der Bot eine 5/5 Gift Rbf verkauft hat, laut Einstellung.. :

[Type] == jewel && [Quality] == unique # ([333]+[329] == 10 || [330]+[334] == 10 || [331]+[335] == 10 || [332]+[326] == 10) // Rainbowfacette (all) -5,5

sollte er sie ja eig mitnehmen oder hat sich da ein Fehler eingeschlichen?
08/19/2010 23:29 K03#43
[332]+[326] == 10
entspricht
["passivepoismastery"] + ["poisoncount"] == 10
da müsste hin:
[332]+[336] == 10

Edit: Wobei das glaub ich falscher Threat dafür ist ^^

08/19/2010 23:42 MeTzeLMeisTa#44
Sry hab mir keine Gedanken übern Thread gemacht
Aber Danke für die Antwort und geht immer so schnell hier.. Top! :)

Das sollten dann wohl alle ändern die Gift Rbf´s mitnehmen wollen
08/19/2010 23:48 lanara#45
Quote:
Originally Posted by theEye321123 View Post
hey
also mein diamitlaufen script klappt mittlerweile fast perfekt :)
und das baalleech script hab ich so angepasst, dass auch nicht eni chars zu baal kommen
bei interesse kann ich dir ersteres schicken das für baal poste ich einfach mal ;)
Ich werde mir das Diascript mal anschaun, wenn du es public machst, solang lasse ich erstmal das bisherige drin, da es schon sehr safe ist, auch für Chars ohne Equip. Der Vorteil an deinem wäre dann wohl, dass es besser für public games geeignet ist, da der Bot nicht für Außenstehende seltsame TPs aufmacht. :p Aber das Script war auch in erster Linie dafür gedacht, Chars von lvl1-60 zu ziehen, damit sie dann Baalruns leechen können.

Und danke für das Baalleech script, wollte da sowieso noch was dran ändern. ;)

Quote:
Originally Posted by MeTzeLMeisTa View Post
Hab eben gesehen das der Bot eine 5/5 Gift Rbf verkauft hat, laut Einstellung.. :

[Type] == jewel && [Quality] == unique # ([333]+[329] == 10 || [330]+[334] == 10 || [331]+[335] == 10 || [332]+[326] == 10) // Rainbowfacette (all) -5,5

sollte er sie ja eig mitnehmen oder hat sich da ein Fehler eingeschlichen?
Wie man sieht, habe ich die Leecher Pickit komplett von Proezler übernommen und dabei noch keine Änderungen gemacht. Ich werde da aber definitiv nochmal drüberschaun und dann auch einiges rausnehmen. Zum Beispiel nimmt er mir auch viel zu viele Magic+Rare Items auf, was ich ändern möchte. Wird also auch im nächsten Update drin sein, was ich dieses Wochenende machen werde, wenn mir nichts dazwischen kommt.

Was die RBF anbelangt siehe K03's Post.